当前位置:文档之家› mysql笔记之常用命令

mysql笔记之常用命令

mysql笔记常用命令2020●数据库命令:创建:creata database 数据库名; 查询;show databases;切换;use 数据库;删除;drop database 数据库名;查看表:show tables;打开表:desc 表名称;删除表:drop tables 表明;●sql语句必须加“;”号;●mysql 数据类型经常变化的字段用varchar 知道固定长度的用char 尽量用varchar 超过255的字符只能用varchar或者text 能用varchar的地方不用text●数值—日期/时间—字符串●创建数据表表名—字段名—定义字段●create table table-name (column_name column_type);●删除数据表1、当你不再需要该表时,用 drop;2、当你仍要保留该表,但要删除所有记录时,用 truncate;3、当你要删除部分记录时,用 delete。

●DROP TABLE table_name●mysql插入数据●insert into table_name (field1,field2...) values (value1,value2,....) 如果数据是字符型,必须使用单引号或者双引号,如:"value"。

●mysql查询数据select column_name,column_nae FROM table_name [WHRER Clause] [LIMIT N] [OFFSET M]●查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

●你可以使用 WHERE 语句来包含任何条件。

●你可以使用 LIMIT 属性来设定返回的记录数。

●你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。

默认情况下偏移量为0。

select * : 返回所有记录 limit N : 返回 N 条记录 offset M : 跳过 M 条记录, 默认 M=0, 单独使用似乎不起作用 limit N,M : 相当于 limit M offset N , 从第 N 条记录开始, 返回 M 条记录●mysql whrer子句●select field1,field2,... from table_name1,table_name2...whrer condition1 [AND [OR]] condition2... 你可以使用 AND 或者 OR 指定一个或多个条件。

●MySQL 的 WHERE 子句的字符串比较是不区分大小写的。

你可以使用 BINARY 关键字来设定WHERE 子句的字符串比较是区分大小写的。

select * from tb_name where binary [字段名='大小写'];●mysql update更新●update 表名称 set 列名称=新值 where 更新条件;update table_name set field1=new-value1,field2=new-vlue2 [where clause] 你可以同时更新一个或多个字段。

你可以在WHERE 子句中指定任何条件。

你可以在一个单独表中同时更新数据。

●mysql delete语句●delete from 表名称 [where clause]如果没有指定WHERE 子句,MySQL 表中的所有记录将被删除。

delete,drop,truncate 都有删除表的作用,区别在于: 1、delete 和truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。

●delete 语句用于删除表中的数据, 基本用法为: delete from 表名称 where 删除条件; 以下是在表students 中的实例: 删除 id 为 3 的行: delete from students where id=3; 删除所有年龄小于 21 岁的数据: delete from students where age<20; 删除表中的所有数据: delete from students;●mysql like 子句●select field1,field2... from table_namewhere field1 like condition1 [and[or]] filed2 = 'somevalue' like 匹配/模糊匹配,会与 % 和 _ 结合使用。

'%a' //以a结尾的数据 'a%' //以a开头的数据 '%a%' //含有a的数据 '_a_' //三位且中间字母是a的 '_a' //两位且结尾字母是a的 'a_' //两位且开头字母是a 的●mysql 排序●order by参数(从低到高)select [字段] from [表名] order by [字段] 例如:SELECT id, name, gender, score FROM students ORDER BY score;●order by desc(表示倒序)●例如:SELECT id, name, gender, score FROM students ORDER BY score DESC;●如果排序字段中有相同数据的,可以进步排序,添加字段●select [字段] from [表名] order by [字段] desc,[字段]例如:select name,gender,score from students order by score desc, gender;●分页查询●按score从高到低select id,name,gender,score from students order by score desc; 把结果集分页,每页3条记录,获取第一页的记录,使用limit 3 offset 0;select id,name,gender,score from studentsorder by score desc limit 3 offset 0;●聚合查询(sum;avg;max;min)●COUNT()函数select count(*) from students;●聚合查询时,给列名设置一个别名select count(*) lieming students;●聚合查询并设置WHERE条件select count(*)lieming from students where gender='F';●聚合查询计算男生平均成绩select avg(score) avgage from students where gender="M";●分组(统计班级学生数量)select class_id,count(*) cls from students group by class_id;●统计各班的男生和女生人数:select class_id,gender, count(*) from students group by class_id,gender;●多表查询●查询多张表的语法是:SELECT * FROM <表1> <表2>select * from classes,students;●多表中的列如有相同,为了便于区分,可以采用投影查询-设置别名select studens.id sid, name, students.gender, student.score, classes.id cid, cname from studens,classes;●简洁版SELECT s.id sid, , s.gender, s.score, c.id cid, cname FROM students s, classes c;●多表查询where条件select s.id,,s.gender,s.score,c.id cid, cname from students s,classes c WHERE s.id=1 and c.id=2;●连接查询●内连接——INNER JOIN选出所有学生,同时返回班级名称select s.id,,s.class_id, class_name,s.gender,s.score from students s inner join classes c on s.class_id =c.id;●外连接(OUTER JOIN)SELECT s.id, , s.class_id, class_name, s.gender, s.score FROM students s RIGHTOUTER JOIN classes c ON s.class_id = c.id;●实用语句●插入或替换如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就先删除原记录,再插入新记录。

此时,可以使用REPLACE语句,这样就不必先查询,再决定是否先删除再插入:REPLACE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);●插入或更新我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录,此时,可以使用INSERT INTO ... ON DUPLICATE KEY UPDATE ...语句: INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99) ON DUPLICATE KEY UPDATE name='小明', gender='F', score=99;●插入或忽略如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就啥事也不干直接忽略,此时,可以使用INSERT IGNORE INTO ...语句: INSERT IGNORE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);。

相关主题