MySQL常用语法

连接/关闭MySQL

net start mysql
# 开启服务
mysql -u root -p
# 进入mysql
net stop mysql
# 关闭服务

数据库(database)的常用指令

show databases;
# 展示当前所有的数据库
select database();
# 显示当前使用的数据库
create database 数据库名(ray);
# 创建表
use 数据库名(ray);
# 选择数据表
drop database 数据库名(ray)
# 删除数据库
show create database 数据库名(ray)
$ 查看创造数据库语句

数据表(table)的常用指令

字段类型:1. int unsigned (无符号整型) 2. primary key(索引) 3.unsigned(非特殊类型)4. varchar(255) (字节)5.not null (非空) 6.auto-increment (自动增加)7.default(默认)

show tables
# 显示当前数据库中的所有表
create table 数据表名(字段1 类型,字段2 类型,。。。)
ps: create table ray(name int unsigned primary key auto-increment,title varchar(255));
# 创建表,限制字段类型
drop table 数据表名;
# 删除数据表
desc 数据表名
# 查看表结构
show create table 数据表名;
# 查看创建表时的语句

字段的常用指令

alter table 表名 add 列名 新数据类型;
# 在已经存在的表中增加列名
alter table 表名drop 列名;
# 在已经存在的表中删除列名
alter table 表名 change 旧字段名 新字段名 数据类型;
# 更改已存在的字段名和数据类型
alter table 旧表名rename 新表名
# 更改表名
drop table 表名
# 删除表名
alter table 表名 字段名 新字段类型;
# 更改字段类型

数据的常用指令

insert [into] 表名 values(...)
# 全列插入
insert into 表名(列1,...) values(值1,...)
insert into students(name) values('老李');
# 部分插入
insert into students values(0,'老刘',40,160,'男',003),(0,'老王',20,180,default,003); 
# 多行插入
select * from students;
# 查询表中所有
select 列1,列2,... from 表名;
select name,gender from students where cls_id=1;
# 查询多列

select 字段[as 别名] , 字段[as 别名] from 数据表 ;
select name as '姓名',gender as '性别' from students;
-- 可以使用as为列或表指定别名(as可以省略)

select distinct cls_id from students;
--只返回不同的值(某一表中的字段有重复数据,使用distinct关键字就可以只返回不同值)

只查询students表中的前三个人:
select name from students
limit 3;
从第四个同学开始查询,返回三个数据:
select name from students
limit 3,3;
--限制查询的结果数(使用limit)

select * from students where cls_id=1;
--限定条件查询(使用where)

注:SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认计算次序,使用圆括号没有什么坏处,能消除歧义。

IN操作符可以完成与OR相同的功能,尤其在使用长的合法选项清单时, IN操作符的语法更清楚且更直观。

--利用通配符过滤数据(利用like)

最常使用的通配符是百分号(%)和下划线他(_)。在搜索串中, %表示任何字符出现任意次数,_只匹配单个字符而不是多个字符。例如,为了找出所有以wa起头的学生姓名,可使用以下SELECT语句:

select name from students
where name like 'wa%';
--对查询结果进行排序(使用order by)

对students表中的身高数据进行排序
select high from students
order by high;
默认按升序进行排序,如果需要降序排序需要添加desc:
select high from students
order by high decs;
--利用order by 和limit组合可以找到students表中身高最高的学生:

select high from students 
order by high decs
limit 1;
注:使用ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。 使用子句的次序不对将产生错误消息。

修改

-- update 表名 set 列1=值1,列2=值2... where 条件;

-- 全部修改

update students set gender='中性';
-- 按条件修改

update students set gender='女' where id=2;
-- 按条件修改多个值

update students set gender='男' where cls_id=3; 
删除

 delete from 表名 where 条件
 delete from students where id=1;

参考链接
https://zhuanlan.zhihu.com/p/105634065

上一篇:Mysql索引知识整理


下一篇:Ubuntu 16.10 中文环境 Shell输出英文提示