• MySQL学习笔记(一)


    -----------MySQL命令---------------
    1.登录数据库
    >mysql -h localhost -u root -p

    2.查看所有数据库列表
    show databases;

    3.选择需要使用的数据库
    use [数据库名];

    4.显示当前数据库下的所有表
    show tables;

    5.查看详细的数据表结构
    show create table [数据表名]

    6.查看表结构
    desc [表名];

    7.清空当前输入行的数据
    \c

    8.SQL结束标记
    ;或\g 使用\G结束主要是为了让数据显示得美观一些。

    9. 显示MYSQL帮助命令
    \h 或者\?

    -----------------------------------
    -----------数据表操作--------------
    1.重命名字段
    alter table [数据表名] change [旧字段名称][新字段][数据类型];

    2.修改字段的位置
    alter table [数据表名] modify [字段名] [数据类型] after [ 前一个字段];

    3.修改字段名
    alter table [数据表名] change [字段名] score [数据类型]);

    4.查询表中的主键和外键
    select constraint_name from information_schema.key_column_usage where table_schema=[数据表名]; 或者
    select * from information_schema.key_column_usage where table_schema=[数据表名];

    5.删除字段的外键约束
    alter table [数据表名] drop foreign key [外键名];

    6.删除字段
    alter table [数据表名] drop [字段名];

    7.增加字段
    alter table [数据表名]add [字段名] [数据类型];

    8.修改表名
    alter table [数据表名]rename to [字段名];

    9.删除表
    drop table [数据表名];

    10.修改字段类型
    alter table [数据表名] Modify [字段名] [数据类型]

    11.更改数据表的引擎
    alter table [数据表名] ENGINE=[存储引擎名]

    ---------------创建索引-----------------
    语法:
    create table [数据表名]
    (
    字段名 数据类型 [完整性越俗条件],
    字段名 数据类型 [完整性越俗条件],
    字段名 数据类型 [完整性越俗条件],
    ……
    字段名 数据类型
    [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [索引名](字段名[(长度)]|[ASC|DESC])
    );

    12.创建普通索引,使用关键字index或者Key,二选其一
    create table sys_user
    (
    userID int primary key not null auto_increment,
    userName varchar(60) not null,
    userPwd varchar(60) not null,
    Email varchar(50),
    index [索引名称] (userID) ---对UserID创建普通索引
    );

    ---插入测试数据
    insert into Sys_User(userName,userPwd,Email)values('Jack','123456','jack@admi
    n.com');
    insert into Sys_User(userName,userPwd,Email)values('Tom','123456','Tom@admin.
    com');
    insert into Sys_User(userName,userPwd,Email)values('Peeter','123456','Peeter@
    admin.com');
    insert into Sys_User(userName,userPwd,Email)values('Harry','123456','Harry@ad
    min.com');

    13.查看索引是否被使用
    explain select * from sys_user where Id=1 \G
    possible_keys和 key都在存在,说明索引存在并且开始说使用了。

    14.创建唯一索引
    create table Index_Demo
    (
    id int primary key not null auto_increment,
    name varchar(45) not null,
    unique index index_id(id) ---使用unique指定唯一索引
    );

    15.创建全文索引(只有MYISAM引擎支持全文索引)
    create table Index_Full
    (
    id int primary key not null auto_increment,
    name varchar(45) not null,
    fulltext index index_full_id(name)----使用fulltext指定为全文索引,全文索引只能是(char,varchar,text类型的字段)
    )engine=MYISAM;

    16.创建单列索引(可以给索引字段设置长度)
    create table Index_alone
    (
    id int primary key not null auto_increment,
    name varchar(45),
    index index_id(name(10)) -设置单列索引字段的长度为10,可以提高查询速度
    );

    17.创建多列索引(在一个表的多个字段上创建索引)
    create table index_Many
    (
    id int primary key auto_increment not null,
    varno varchar(12) not null,
    varname varchar(45) not null,
    index index_name(varno,varname)
    );
    使用多列索引时应该注意:只有使用了索引字段中的第一个索引时,才会触发索引,如果没有使用到多列索引中的第一个索引的话,则不会触发索引。
    一次优化索引的时候,可以首先考虑到优化多列索引。

    18.创建空间索引(SPATIAL关键字.1.存储引擎必须是MYISAM;2.必须有非空约束)
    create table index_space
    (
    id int primary key auto_increment not null,
    space geometry not null,
    spatial index index_space_id(space)
    )engine=MyISAM;
    补充:空间数据类型
    GEMOETRY,POINT,LINESTRING,POLYGON,平常很少用到

    -----------------------------------

    -----------在已经存在的表上创建索引---------------
    语法
    CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX [索引名]
    ON [表名] ([字段名] [(长度)] [ASC|DESC]);

    1.创建普通索引--使用表sys_user和sys_role为例
    create index index_userid on sys_user(userID);

    2.创建唯一索引
    create unique index index_name on sys_user(userName);

    3.创建全文索引(注意只有MyISAM存储引擎支持全文索引)
    --修改存储引擎
    alter table student engine=MyISAM;
    --创建测试索引
    create fulltext index index_full on student(name (10));

    4.创建多列索引
    create index index_n on grade(course,s_num);

    5.创建空间上索引
    --创建测试表
    create table space
    (
    id int primary key auto_increment not null,
    address geometry not null
    );
    --修改存储引擎
    alter table space engine=MyISAM;
    --创建全文索引
    create spatial index index_add on space(address);

    -----------使用alert Table创建索引--------------
    语法
    ALTER TABLE [表名] ADD [UNIQUE|FULLTEXT|SATIAL] INDEX [索引名]
    ([字段名] [(长度)] [ASC|DESC]);

    1.创建普通索引--使用表sys_user和sys_role为例
    alter table student add index index_name(name);

    2.创建唯一索引
    alter table student add unique index inex_unique(num);

    3.创建全文索引(注意只有MyISAM存储引擎支持全文索引)
    --修改存储引擎
    alter table student engine=MyISAM;

    --创建测试索引
    alter table student add fulltext index index_full(address);

    4.创建多列索引
    alter table grade add index index_many(course,s_num);

    5创建空间索引
    alter table grade add spatial index index_space(course);

    6.删除索引

    drop index [索引名] on [表名];


    -----------------------------------

    练习实例代码

    create table Sys_Role(
      RoleID int primary key auto_increment not null,
      RoleName varchar(60) not null,
      Remark varchar(120) null
     
     );
     insert into Sys_Role ( RoleName,Remark)values ('系统管理员',Null);
     insert into Sys_Role ( RoleName,Remark)values ('管理员',Null);
     insert into Sys_Role ( RoleName,Remark)values ('前台用户',Null); 
     
     create table Sys_User(
     userID int auto_increment primary key not null ,
     RoleID int , 
     constraint U_R_fk foreign key (RoleID) references Sys_Role (RoleID),
     userName varchar(30),
     userPwd varchar(32),
     Email varchar(50)
     );  
     insert into Sys_User(userName,userPwd,Email,RoleID)values('Jack','123456','jack@admi
     n.com',1);
     insert into Sys_User(userName,userPwd,Email,RoleID)values('Tom','123456','Tom@admin.
     com',2);
     insert into Sys_User(userName,userPwd,Email,RoleID)values('Peeter','123456','Peeter@
     admin.com',3);
     insert into Sys_User(userName,userPwd,Email,RoleID)values('Harry','123456','Harry@ad
     min.com',2);
     
     
     
     ------- 实例练习
     create table Student 
     (
      num int (10) primary key not null unique,
      name varchar(20) not null,
      sex varchar(4) not null,
      birthday datetime,
      address varchar(50)
     );
     create table Grade
     (
      id int(10) primary key not null unique,
      course varchar(10) not null,
      s_num int(10) not null,
      constraint S_G_fk foreign key (s_num) references Student (num),
      grade varchar(4)
     );
     
     ---创建普通索引
     create table sys_user
     (
      userID int not null ,
      userName varchar(60) not null,
      userPwd varchar(60) not null,
      Email varchar(50),
      index index_user_id (userID) 
     );
     ---插入测试数据
     insert into Sys_User(userID,userName,userPwd,Email)values(1,'Jack','123456','jack@admi
     n.com');
     insert into Sys_User(userID,userName,userPwd,Email)values(3,'Tom','123456','Tom@admin.
     com');
     insert into Sys_User(userID,userName,userPwd,Email)values(2,'Peeter','123456','Peeter@
     admin.com');
     insert into Sys_User(userID,userName,userPwd,Email)values(4,'Harry','123456','Harry@ad
     min.com');
     
     ----创建唯一索引
     create table Index_Demo
     (
      id int not null ,
      name varchar(45) not null,
      unique index index_id(id) 
     ); 
     
     ---创建全文索引
     create table Index_Full
     (
      id int not null,
      name varchar(45) not null,
      fulltext index index_full_id(name)
     )engine=MYISAM; 
     
     ---创建单列索引
     create table Index_alone
     (
      id int  not null,
      name varchar(45),
      index index_id(name(10))
     );       
     ----创建多列索引
     create table index_Many
     (
      id int not null,
      varno varchar(12) not null,
      varname varchar(45) not null,
      index index_name(varno,varname)
     );
     ---插入测试数据
     insert into index_Many (id,varno,varname) values(1,'01010022','harry');
     insert into index_Many (id,varno,varname) values(2,'01010023','Jack');
     insert into index_Many (id,varno,varname) values(3,'01010024','Tom');
     insert into index_Many (id,varno,varname) values(4,'01010025','Pattery');
     insert into index_Many (id,varno,varname) values(5,'01010026','Jamson');
     insert into index_Many (id,varno,varname) values(6,'01010027','Lucy');       
     
     创建空间索引
     create table index_space
     (
      id int primary key auto_increment not null,
      space geometry not null,
      spatial index index_space_id(space)
     )engine=MyISAM;
     
     在已经存在的表上创建索引
     --创建普通索引
     create index index_userid on sys_user(userID);
     --创建唯一索引
     create unique index index_name on sys_user(userName);
     
     --新建测试表
     ------- 实例练习
     create table Student 
     (
      num int (10) primary key not null unique,
      name varchar(20) not null,
      sex varchar(4) not null,
      birthday datetime,
      address varchar(50)
     );
     create table Grade
     (
      id int(10) primary key not null unique,
      course varchar(10) not null,
      s_num int(10) not null,
      grade varchar(4)
     );
     --创建全文索引
     create fulltext index index_full on student(name (10));
     
     --使用alter table创建索引
     --创建普通索引
     alter table student add index index_name(name);
     --创建唯一索引
     alter table student add unique index inex_unique(num);
  • 相关阅读:
    网站收录(2)-财经网站
    网络爬虫(13)-Scrapy持久化存储
    网络爬虫(12)-Scrapy框架Post请求发送
    Excel常用函数
    VBA基础
    网站收录(1)-行业研究
    网络爬虫(11)-Scrapy分布式
    网络爬虫(10)-进程、线程
    log
    关于camera 智障的问题
  • 原文地址:https://www.cnblogs.com/acoll/p/2743824.html
Copyright © 2020-2023  润新知