mysql数据库常用命令笔记

连接数据库:mysql -h localhost -u root -p 000000

退出:exit;    \q;    quit;

SET foreign_key_checks = 0; 禁用外键

->表示当前命令没有执行或者等待命令执行符来确认;

\c 用来清除->效果

'>、">  表示之前的mysql语句缺少引号

Informaction_schema  主要存储数据库中数据库对象信息 表信息 列信息 权限信息  数据字典

Mysql库、存储了mysql的权限信息和服务器正常运行信息。

performance_schema 记录了保存进程,、详细信息 历史记录等(性能字典)

mysql数据库中数据类型

mysql数据库常用命令笔记

mysql数据库常用命令笔记

mysql数据库常用命令笔记

列的完整约束:

主键:PRIMARY KEY

自增:AUTO_INCREMENT

默认值:DEFAULT ''

不为空:NOT NULL

为空:NULL

无符号:UNSIGNED

数据库操作:

创建数据库  CREATE DATABASE 库名; 可加 IF NOT EXISTS 库名(表示不存在则创建)

删除数据库  DROP DATABASE 库名;

查看数据库 SHOW DATABASES;

创建数据库时设置字符集  DEFAULT CHARSET=UTF8;

修改数据库字符集  ALTER DATABASE 库名 CHARSET=UTF8;

查看数据库字符集  SHOW CREATE DATABASE 库名;

选择数据库 USE 库名;

表的操作:

查看表  SHOW TABLES;

创建表  CREATE TABLE 表名(字段[字段约束]);    ENGINE=MYISAM DEFAULT CHARSET=UTF8;                    可在表名前面加IF EXISTS表示判断是否存在

修改表  ALTER TABLE 原表名 RENAME 新表名;

备份表  CREATE TABLE 新表名  SELECT * FROM 原表名;  不会备份到主键和字符集

删除表  DROP TABLE [IF EXISTS] 表名;

查看键表语句  SHOW CREATE TABLE;  \G表示以完整形式显示

字段操作:

查看字段  DESC 表名;  field 字段名  type 类型  null 是否为空  default 默认值  extra 额外信息

添加字段  ALTER TABLE 表名 ADD 新字段名 数据类型[约束]  位置参数  (在最后加):FIRST表示添加到最前  AFTER添加到哪个之后

修改字段数据类型  ALTER TABLE 表名 MODIFY 字段名 新字段类型[新约束]

修改字段所有 ALTER TABLE 表名 CHANGE 原字段名 新字段名 新字段类型[新约束]

删除字段  ALTER TABLE 表名 DROP 字段名

mysql中的运算符:+  - *  /或者div  %或者mod  = <>  !=  >=  <=

mysql函数:select database();  查看当前所在数据库

select md5(); 计算MD5加密

count(); 计算数据的长度

sum(); 累加和运算

concat();  将字段粘在一起

truncate table 表名;  重置自增并且清空数据表

数据操作:

添加数据  INSERT INTO 表名 (`字段名1`,`字段名2`...) values('值1','值2');   字段名中使用反引号是为了防止关键字报错

INSERT INTO 表名 values('值1','值2');  必须写全表中所有字段

INSERT INTO 表名  (`字段名1`,`字段名2`...) values('值1','值2'),('值1','值2')  一次添加多条数据

查看表中所有字段内容  select * from 表名;  * 表示通配符

NOT IN 表示不在

like模糊匹配  %表示任意字符 _ 表示一个字符

查询数据表中有多少条数据  SELECT COUNT(*) FROM 表名;  *表示所有字段  可将*改为字段则统计字段

排序查询  ORDER BY 字段  ASC(正序)  DESC(倒序)

按照id正序排序  SELECT * FROM user ORDER BY id ASC;

限制查询数量LIMIT:  SELECT 字段 FROM 表名 LIMIT 查询数量

分组查询  GROUP BY

查询每个部门有多少人  SELECT COUNT(*),部门 FROM gz GROUP BY 部门;

查询每个部门的总工资  SELECT SUM(工资),部门 FROM gz GROUP BY 部门;

多表联合查询  SELECT 表1.字段,表2.字段……FROM 表1,表2 WHERE 表1.字段=表2.字段  注意:多表联合查询一定要有关联的字段才能做

查询条件使用的顺序:SELECT 语句 [WHERE条件] [group BY条件] [HAVING条件 没讲 二次过滤] [ORDER BY条件] [limit 条件]

删除数据  DELETE FROM 表名  WHERE 条件

删除user1表中sex=0的数据  DELETE FROM user1 WHERE sex=0;

删除user1表中id=7的数据  DELETE FROM user1 WHERE id=7;

删除user1表中 id = 3 和 id=6的数据  DELETE FROM user1 WHERE id=3 OR ID=6;

删除user1表中 sex = 1 并且 age = 40的数据  DELETE FROM user1 WHERE sex=1 AND age=40;

删除user1表中 id>10 和 id<5的所有数据  DELETE FROM user1 WHERE id>10 or id<5;

删除user1表中id>7 和 id<9的所有数据  DELETE FROM user1 WHERE id>7 and id <9;

删除user1表中id>=7 和 id<=9的所有数据 DELETE FROM user1 WHERE id>=7 and id  <=9;

删除user1表中 id 为  1  4  5  6 7 10  DELETE FROM user1 WHERE id in(1,4,5,6,7,10);

删除表中gid字段为偶数的数据(不要使用,效率太低)  DELETE FROM user1 WHERE mod 2=0;

修改数据  UPDATE 表名 SET 字段名=值,字段名=值 WHERE 条件

修改user1表中sex=1,age=18 条件:id为1,3,5,7,9,10的数据  UPDATE user1 SET sex=1,age=18 WHERE id in(1,3,5,7,9,10);

修改 user1表中 name=’zhangsanfeng’ 条件 age=40  UPDATE user1 SET name='zhangsanfeng' WHERE age=40;

修改 user1表中 name=xiaohuahua age=28 条件是性别是null的  UPDATE user1 SET name='xiaohuahua',age=28 WHERE sex is null;

修改user1表中 age=20 条件是 sex不为空  UPDATE user1 SET age=20 WHERE sex is not null;

导出命令  mysqldump [-h localhost] -u 用户名 -p密码 库名 [表名] > 导出的文件名

导入命令  mysql -h 主机地址 -u用户名 -p密码 选择要调入的库名 < 导入的文件地址

mysql正则(不用)

查询

匹配用户名中是以Z开头 以G结尾 中间是任意内容的数据

SELECT * FROM user WHERE name REGEXP '^z[a-z]+g$';

匹配用户名中以Z开头的数据

SELECT * FROM user WHERE name REGEXP '^z';

匹配用户名中以G结尾的数据

SELECT * FROM user WHERE name REGEXP 'g$';

匹配用户名中存在a-h之间任意一个字母

SELECT * FROM user WHERE name REGEXP '[a-h]';

上一篇:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x9A\x80\xF0\x9F...' for column 'name' at row 1


下一篇:MySQL数据库主从复制