一、数据库操作
新增数据库
create database 数据库名 库选项;
库选项:字符集设定(编码格式,如GBK、UTF8)
校对及设定(数据比较的规则)
数据库名字不能用关键字和保留字,如若要用需在外部用`定界。
如取中文名需要输入命令:
set names GBK;
create database 中文名字 charset utf8;
查看创建的数据库
show databases;
删除数据库
drop database 数据库名;
二、数据表操作
新增数据表
create table if not exists 表名(
字段名字 数据类型,
......
字段名字 数据类型 --最后一行不需逗号
) 表选项;
if not exists :可选,如果表名存在则不执行创建代码(检查功能)
表选项:charset/character set 具体字符集
collecte 具体校对集
存储引擎:engine 具体存储引擎(innodb和myisam)
方法1:显式指定所属数据库
create table 数据库名.表名()表选项;
方法2:隐式指定表所属数据库(先进入某个数据库,然后创建表)
进入数据库环境:use 数据库名;
创建数据表
查看数据表
show tables;
查看表结构
desc/describe/show columns from 表名;
修改表名
rename table 旧表名 to 新表名;
删除数据表
将数据表结构和数据完全删除释放内存
drop table 表名1,表名2......;
只删除表内全部数据,保留表结构
truncate table 表名;
删除带条件的数据
delete from 表名 where 条件;
三、数据操作
新增数据
--给全表插入数据
--(无需指定字段列表,数据出现的顺序与表中字段的顺序一致,非数值数据用单引号包裹)
insert into 表名 values(值列表逗号隔开),(值列表)......;
--给指定字段插入数据(需指定字段列表,值顺序与指定的列表顺序一致)
insert into 表名(字段列表) values(值列表),(值列表)......;
查看数据
select *或指定字段1,字段2...... from 表名 where 条件;
- where条件可省略
like子句查询
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
'_a_' //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
如:select * from user where name like "B%";
在user表中查找字段中以B开头的内容
如果在like子句中没有使用%,则like和=的结果相同
排序
order by 字段,asc/desc
以某个字段进行排序,asc为升序,desc为降序。
字段可以为字段名也可以为数字,为数字时表示select参数的位置
如:
mysql> select * from class;
+------+-------+---------+-------+
| num | name | hobby | grade |
+------+-------+---------+-------+
| 1 | Tony | play | 88 |
| 2 | ZW | bbox | 100 |
| 3 | Lily | pinpang | 40 |
| 4 | Bob | sing | 45 |
| 5 | Alice | dance | 88 |
+------+-------+---------+-------+
5 rows in set (0.00 sec)
mysql> select num,name from class order by 3;
ERROR 1054 (42S22): Unknown column '3' in 'order clause'
mysql> select num,name from class order by 1;
+------+-------+
| num | name |
+------+-------+
| 1 | Tony |
| 2 | ZW |
| 3 | Lily |
| 4 | Bob |
| 5 | Alice |
+------+-------+
5 rows in set (0.00 sec)
mysql> select num,name from class order by 2;
+------+-------+
| num | name |
+------+-------+
| 5 | Alice |
| 4 | Bob |
| 3 | Lily |
| 1 | Tony |
| 2 | ZW |
+------+-------+
5 rows in set (0.00 sec)
这种方法也是手工注入总常见的用来判断select的参数有多少个的方法。
更新数据
update 表名 set 字段=new值,字段=new值...... where条件;
- 更改表中的数据,where条件可省略
删除数据
delete from 表名 where条件;
- where条件可省略
五、字符集问题
查看服务器支持那些字符集的命令
show character set;
查看服务器默认的字符集
show variables like'character_set%';
修改服务器默认字符集(只是会话级别,当重新进入数据库后就会失效)
set variable_name=字符集;
快捷方法:
set names 字符集;//改变character_set_client、character_set_connection、character_set_result
六、相关函数
concat(str1,str2,str3…)
将多个字符串连接成一个字符串。如果需要分隔开字符串,需要在每个字符串之间加分隔符
否则字符串是连接在一起
concat_ws(参数1,str1,str2…)
参数1为分隔符,其余与concat一样。
当网站限制输入单引号时,可以将第一个参数进行十六进制转换
0x2C为逗号的十六进制表示
group_concat()
参考此博文介绍
参考:https://baijiahao.baidu.com/s?id=1595349117525189591&wfr=spider&for=pc