连接数据库相关语句:
mysql -uroot -p root #然后输入密码(默认为root),进入数据库mysql -u root -proot #不推荐用这个方式进入数据库,密码直接展示了exit #或者 quit 为退出select version(); #显示数据库版本select now(); #查询时间show databases; #查询所有数据库
DDL(数据库表的定义语句)
create database python01; #创建名称为python01的数据库create database python01 charset=utf8; #创建类型为utf8 名称为python01的数据库#对于已经输入的语句,可以用方向键上下进行切换查看show create database python01; #查看创建数据库python01的语句在sql语句中,通常用`python01`这样的符号来表示被引用的内容是一个字符,而不是一个表use python01; #表示使用名称为python01的数据库select database(); #查看正在使用的数据库drop database python01; #删除名称为python01的数据库
数据表的查看代码
show tables; #查看当前数据库里面的所有数据表create table student (字段1 类型1 约束条件1,字段2 类型2 约束条件2) #创建表字段为1/2名称为student#约束条件:auto_increment表示自动增长;not null表示不能为空;primary key表示主键;default默认值#指定varchar类型的时候是一定要给指定长度的,例如varchar(30),表示指定字符串长度为30#指定enum类型,enum('男','女','保密') default '保密' 表示枚举性别为男女、默认值为保密#指定类型时,可以用unsigned来约束无符号desc student; #查看表名为student的表结构#在sql查询器中执行语句时,如果执行当前语句,用快捷键F9show create table student; #查看表名为student的创建语句
数据库的表修改语句:
alter table student add birthday date; #在student表中添加名为birthday、类型为日期的列alter table student modify birthday date default '1990-1-1' #修改列名为birthday的类型为日期,指定默认值为'1990-1-1',不重命名alter table student change birthday birth ..; #将student表birthday列名修改为birth,类型..,重命名alter table student drop birthday; #在student表中删除birthday列drop sutdent; #删除student表名
DML:数据库的增删改查(curd)
insert into student values(val1,val2) #在student表中插入一行数值(val1、val2)#遇到自增主键字段,在插入数据时,可以用0、null、default来占位即可#遇到枚举类型字段,插入的value值可以用下标进行定义,且下标是从1开始的select *from student #查询student表中数据信息insert into student(value1,value2) values(val1,val2) #在value1和value2两列添加数值val1和val2insert into student values(val1,val2),(val3,val4) #同时多列插入数值
DQL:数据库查询(select)
将指定列中的指定字符替换成另外的字符:
UPDATE 渠道销售统计表$ SET v=REPLACE(v,',','') WHERE v LIKE '%,%'
统计数据库中制定表的指定条件的记录数据个数 ```sql select count(*) as ‘查询后的显示列名’ from ‘数据表名’ ‘函数返回所有记录条数’ select count(‘指定列名’) as ‘查询后的显示列名’ from ‘数据表名’ ‘函数返回指定列所有记录条数’ SELECT COUNT(DISTINCT ‘指定列名’) aS ‘查询后的显示列名’ from ‘数据表名’’函数返回指定列非空记录条数’
- 计算某一列值的总和```sqlselect sum (column_name) from table_name
- 数据库中模糊查询
其中关于条件,SQL提供了四种匹配模式:SELECT 字段 FROM 表 WHERE 某字段 Like 条件
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、去除数据库中重复行的数据
SELECT DISTINCT order_id(重复数据行) FROM `take_info`(所在表)
