• 连接数据库相关语句:

      1. mysql -uroot -p root #然后输入密码(默认为root),进入数据库
      2. mysql -u root -proot #不推荐用这个方式进入数据库,密码直接展示了
      3. exit #或者 quit 为退出
      4. select version(); #显示数据库版本
      5. select now(); #查询时间
      6. show databases; #查询所有数据库
    • DDL(数据库表的定义语句)

      1. create database python01; #创建名称为python01的数据库
      2. create database python01 charset=utf8; #创建类型为utf8 名称为python01的数据库
      3. #对于已经输入的语句,可以用方向键上下进行切换查看
      4. show create database python01; #查看创建数据库python01的语句
      5. sql语句中,通常用`python01`这样的符号来表示被引用的内容是一个字符,而不是一个表
      6. use python01; #表示使用名称为python01的数据库
      7. select database(); #查看正在使用的数据库
      8. drop database python01; #删除名称为python01的数据库
    • 数据表的查看代码

      1. show tables; #查看当前数据库里面的所有数据表
      2. create table student (字段1 类型1 约束条件1,字段2 类型2 约束条件2) #创建表字段为1/2名称为student
      3. #约束条件:auto_increment表示自动增长;not null表示不能为空;primary key表示主键;default默认值
      4. #指定varchar类型的时候是一定要给指定长度的,例如varchar(30),表示指定字符串长度为30
      5. #指定enum类型,enum('男','女','保密') default '保密' 表示枚举性别为男女、默认值为保密
      6. #指定类型时,可以用unsigned来约束无符号
      7. desc student; #查看表名为student的表结构
      8. #在sql查询器中执行语句时,如果执行当前语句,用快捷键F9
      9. show create table student; #查看表名为student的创建语句
    • 数据库的表修改语句:

      1. alter table student add birthday date; #在student表中添加名为birthday、类型为日期的列
      2. alter table student modify birthday date default '1990-1-1' #修改列名为birthday的类型为日期,
      3. 指定默认值为'1990-1-1',不重命名
      4. alter table student change birthday birth ..; #将student表birthday列名修改为birth,类型..,重命名
      5. alter table student drop birthday; #在student表中删除birthday列
      6. drop sutdent; #删除student表名
    • DML:数据库的增删改查(curd)

      1. insert into student values(val1,val2) #在student表中插入一行数值(val1、val2)
      2. #遇到自增主键字段,在插入数据时,可以用0、null、default来占位即可
      3. #遇到枚举类型字段,插入的value值可以用下标进行定义,且下标是从1开始的
      4. select *from student #查询student表中数据信息
      5. insert into student(value1,value2) values(val1,val2) #在value1和value2两列添加数值val1和val2
      6. insert into student values(val1,val2),(val3,val4) #同时多列插入数值
    • DQL:数据库查询(select)

    • 将指定列中的指定字符替换成另外的字符:

      1. UPDATE 渠道销售统计表$ SET v=REPLACE(v,',','') WHERE v LIKE '%,%'
    • 统计数据库中制定表的指定条件的记录数据个数 ```sql select count(*) as ‘查询后的显示列名’ from ‘数据表名’ ‘函数返回所有记录条数’ select count(‘指定列名’) as ‘查询后的显示列名’ from ‘数据表名’ ‘函数返回指定列所有记录条数’ SELECT COUNT(DISTINCT ‘指定列名’) aS ‘查询后的显示列名’ from ‘数据表名’’函数返回指定列非空记录条数’

    1. - 计算某一列值的总和
    2. ```sql
    3. select sum (column_name) from table_name
    • 数据库中模糊查询
      1. SELECT 字段 FROM WHERE 某字段 Like 条件
      其中关于条件,SQL提供了四种匹配模式:

    1、%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

    比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’

    将会把u_name列中为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

    另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
    SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%猫%’

    若使用 SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%’
    虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

    2、_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

    比如 SELECT * FROM [user] WHERE uname LIKE ‘三_’
    只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

    再比如 SELECT * FROM [user] WHERE uname LIKE ‘三_‘;
    只找出“三脚猫”这样name为三个字且第一个字是“三”的;

    3、[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

    比如 SELECT * FROM [user] WHERE u_name LIKE ‘[张李王]三’
    将找出“张三”、“李三”、“王三”(而不是“张李王三”);

    如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
    SELECT * FROM [user] WHERE u_name LIKE ‘老[1-9]’
    将找出“老1”、“老2”、……、“老9”;

    4、[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

    比如 SELECT * FROM [user] WHERE u_name LIKE ‘[^张李王]三’
    将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;

    SELECT * FROM [user] WHERE u_name LIKE ‘老[^1-4]’;
    将排除“老1”到“老4”,寻找“老5”、“老6”、……

    5、查询内容包含通配符时

    由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:

    6、去除数据库中重复行的数据

    1. SELECT DISTINCT order_id(重复数据行) FROM `take_info`(所在表)