Mysql基础总结

Mysql基础总结

⦁ 数据库服务启动与关闭(以管理员的身份运行黑窗口):

    启动: net start mysql
    关闭: net stop mysql

⦁ 数据库连接(黑窗口) :

    明文:   mysql  -u用户名  -p密码 
    密文:   mysql  -u用户名  -p  回车  密码
    远程:   mysql  -h地址  -u用户名 -p 回车  密码
    注意:-u和用户名之间可以有空格  但是-p和密码之间不能有空格

⦁ 关于数据库的操作

3.1创建数据库: 
    CREATE  DATABASE  数据库名;

3.2判断数据库是否已经存在,不存在则创建数据库
    CREATE  DATABASE  IF  NOT  EXISTS  数据库名;

3.3创建数据库并指定字符集
    CREATE  DATABASE  数据库名 CHARACTER  SET  字符集;

可以吧3.2与3.3结合起来:
    CREATE  DATABASE  IF  NOT  EXISTS  数据库名  CHARACTER  SET  字符集; 


3.4 查看所有的数据库
    SHOW  DATABASES;

3.5查看某个数据库的定义信息
    SHOW  CREATE  DATABASE  数据库名;

3.6修改数据库默认的字符集
    ALTER  DATABASE  数据库名 DEFAULT  CHARACTER  SET  字符集;

3.7删除数据库
    DROP  DATABASE  数据库名;

3.8查看正在使用的数据库
    SELECT  DATABASE();

3.9使用/切换数据库
    USE  数据库名;

⦁ 关于表的操作

4.1创建表的格式 [约束可以不用写]:
    CREATE  TABLE  表名 (
    字段名 1  字段类型 1  约束1,
    字段名 2  字段类型 2  约束2
);

4.2查看某个数据库中的所有表
    SHOW  TABLES;

4.3查看表结构
    DESC  表名;

4.4查看创建表的 SQL 语句
    SHOW  CREATE  TABLE  表名;

4.5快速创建一个表结构相同的表
    CREATE  TABLE  表名1  LIKE  表名2;
      创建 2 表,2 表结构和 1 表结构相同

4.6直接删除表
    DROP  TABLE  表名;

4.7判断表是否存在,如果存在则删除表
    DROP  TABLE  IF  EXISTS  表名;

4.8修改表名
    RENAME  TABLE  表名 TO  新表名;

4.9修改字符集 
    ALTER  TABLE  表名 character  set  字符集;

4.10添加表列 
    ALTER  TABLE  表名 ADD  列名  类型 约束;

4.11修改列类型 
    ALTER  TABLE  表名 MODIFY  列名  新的类型;

4.12修改列名 
    ALTER  TABLE  表名 CHANGE  旧列名  新列名  类型;

4.13删除列 
    ALTER  TABLE  表名 DROP  列名;

⦁ 关于表中数据的操作:

5.1插入数据
    根据字段插入数据
    INSERT  INTO  表名 ( 字段名 1,  字段名 2, …)  VALUES  (值 1, 值 2,…);
假如所有字段都插入数据 可以略写为(省略字段名):
    INSERT  INTO  表名 VALUES (值1, 值2, 值3…);

批量添加:
    INSERT  INTO 表名 ( 字段名 1, 字段名 2)  VALUES  (值 1, 值 2),(值 1, 值 2);

5.2更新表记录
    UPDATE  表名 SET  列名= 值 [WHERE  条件表达式]
不带条件修改数据
    UPDATE  表名 SET  字段名= 值;    --  修改所有的行
带条件修改数据
    UPDATE  表名 SET  字段名= 值 WHERE  字段名= 值;

5.3删除表记录(如果没有指定 WHERE  子句,MySQL  表中的所有记录将被删除。)
    DELETE  FROM  表名 [WHERE  条件表达式]
不带条件删除数据
    DELETE  FROM  表名;
带条件删除数据
    DELETE  FROM  表名  WHERE  字段名= 值;

5.4使用 truncate 删除表中所有记录
    TRUNCATE  TABLE  表名;

truncate 和 delete 的区别:truncate 相当于删除表的结构,再创建一张表。

⦁ 查询数据

6.1查询指定字段
    SELECT  字段名 1,  字段名 2,  字段名 3, ... FROM  表名;
若是查询所有字段,可简写为:
    SELECT  *  FROM  表名;

6.2使用别名(AS可以省略)
    SELECT  字段1  AS 别名,  字段2  AS  别名... FROM  表名 AS  表别名;
    SELECT  字段1  别名,  字段2  别名... FROM  表名 表别名;


6.3查询指定列并且去重
    SELECT  DISTINCT  字段名  FROM  表名;

6.4查询结果参与运算
    SELECT  列名1 +  固定值  FROM  表名;
    SELECT  列名1 +  列名2  FROM  表名;

6.5条件查询的语法
    SELECT  字段名 FROM  表名 WHERE  条件;


6.6  like 关键字  表示模糊查询 
    SELECT  *  FROM  表名 WHERE  字段名  LIKE  '通配符字符串'; 


6.7 排序
    select  *  from  表名  order  by  列名  asc(升序,默认) / desc (降序);

6.8聚合函数
6.8.1统计函数count()  统计指定字段不为空的记录行数
    select  count(列名)  from  表名

6.8.2求和函数sum()  对指定记录中的某个字段进行求和
    select  sum(列名)  from  表名;

6.8.3最值函数max()/min() 对指定记录中的某个字段进行求最值
    select  max(列名)  from  表名;

6.8.4平均值函数avg()  对指定记录中的某个字段进行求平均值
    select  avg(列名)  from  表名;


6.8 分组查询(必须跟随聚合函数)
    select  count(*)  from  表名  group  by  列名;


6.8.1. where 和 having 的区别?
    1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
    2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。


6.9  分页查询 
1. 语法:limit 开始的索引,每页查询的条数; 
    SELECT  *  FROM  表名  LIMIT  0 , 3;
2.  公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数 -- 每       页显示3条记录

⦁ 主键约束:

主键约束:primary  key
1.在创建表时,添加主键约束
    create  table  stu(
        Id  int  primary  key,-- 给id添加主键约束
        name  varchar(20)
    );

2. 删除主键(不能用modify以修改的方式删除主键)
    ALTER  TABLE  表名  DROP  PRIMARY  KEY;

3. 创建完表后,添加主键
    ALTER  TABLE  表名 MODIFY  id  INT  PRIMARY  KEY;

4.自动增长:
1. 在创建表时,添加主键约束,并且完成主键自增长
    create  table  stu(
        id  int  primary  key  auto_increment,-- 给id添加主键约束
        name  varchar(20)
    );

2.删除自动增长 
    ALTER  TABLE 表名 MODIFY  id  INT; 

3.添加自动增长 
    ALTER  TABLE 表名 MODIFY  id  INT  AUTO_INCREMENT;

非空约束

创建表时添加约束
    CREATE  TABLE  stu(
        Id  INT,
        NAME  VARCHAR(20)  NOT  NULL -- name为非空
    );

2. 创建表完后,添加非空约束
    ALTER  TABLE 表名 MODIFY  字段名  类型  NOT  NULL;

3. 删除字段的非空约束
    ALTER  TABLE 表名 MODIFY  字段名  类型;

唯一约束

1. 在创建表时,添加唯一约束
    CREATE TABLE stu(
        Id  INT,
        phone_number  VARCHAR(20)  UNIQUE -- 手机号
    );

2. 删除唯一约束
    ALTER  TABLE  表名  DROP  INDEX  字段名;

3. 在表创建完后,添加唯一约束
    ALTER  TABLE 表名  MODIFY  字段名  类型  UNIQUE;

外键约束

1. 在创建表时,可以添加外键
        create table 表名(
    ....
    外键列,
    constraint 外键名称 foreign  key (外键列名称) referecnes 主表名称(主表列名称)
);

2. 删除外键
ALTER  TABLE 表名 DROP  FOREIGN  KEY 外键名称;

3. 创建表之后,添加外键
ALTER  TABLE 表名 ADD  CONSTRAINT 外键名称 FOREIGN  KEY (外键字段名称)  REFERENCES 主表名称(主表列名称);

4. 级联操作 
    1. 添加级联操作 (更新级联和删除级联)
    ALTER  TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN  KEY (外键字   段名称)  REFERENCES 主表名称(主表列名称)  ON  UPDATE  CASCADE   ON  DELETE CASCADE ; 
    2.分类: 
⦁   级联更新:ON UPDATE CASCADE 
⦁   级联删除:ON DELETE CASCADE

你可能感兴趣的:(mysql,Mysql基础总结)