mysql的基础语句

mysql的基础语句:

1.如何创建一个新的DB和用户

1
2
3
4
5
6
7
create database DB名字(创建一个新的DB)
grant all privileges on DB名字.* to 用户名字@'%' identified by '密码'
(创建一个新用户并赋予它对这个DB的全部权限,
%:ip地址,表示该用户允许任意ip地址来访问当前数据库
%也可以换成任意ip,比如:127.0.0.1:表示当前机器
也可以是网段,比如:192.168.137.1~255 )
操作完成后记刷新,养成良好的习惯:flush privileges;

视野开阔:

1
java函数启动也可以不需要 main启动类,详情查看:https://github.com/dbeaver/dbeaver/issues/2671

如何查看mysql的链接数 适当kill:

1
2
3
show processlist;
kill id
找到哪个process 卡,导致夯住 锁死 -->和开发 和其他小伙伴确认清楚 再kill

字段类型:

1
2
3
4
5
6
7
8
9
10
11
12
13
数值类型:
int 整数
float 单精度
double 双精度
decimal 小数值:一般用于金额字段
字符串类型
char 定长字符串 0-255字节
varchar 变长字符串 0-65535字节
日期和时间类型
date 日期 YYYY-MM-DD
time 时间 HH:MM:SS
datetime
timestamp

数据库类型分为:

1
2
3
DDL:create  drop
DML:inisert update delete select
DCL:grant

创建表:

1
2
3
create table 表名
每个表中必须只能有一个主键,但是可以有1个或者两个字段组成联合主键
也可以是由两个字段组成自增长

id自增长是非业务系统的唯一标识

约束:

1
2
3
4
primary key = unique+not null
唯一约束 unique
非空约束 not null
默认约束

创建表:

1
2
3
4
5
6
7
8
9
10
11
12
13
#表 table  (创建一张名字rzdata的表)
create table rzdata(
id int AUTO_INCREMENT primary key, (id自增长 主键)

stu_num int,
stu_name varchar(100),
stu_age int,

createtime timestamp default current_timestamp,
createuser varchar(100),
updatetime timestamp default current_timestamp on update current_timestamp,
updateuser varchar(100)
);

向表中插入数据:

1
2
3
4
5
6
7
8
insert into 数据表怕(列名)values(数据) 语法
列如:(一下两种方式都可以)
insert into ruozedata.rzdata(stu_num,stu_name,stu_age,createuser,updateuser)
values(110,'jepson',18,'j','r');


insert into ruozedata.rzdata
values(10,110,'jepson',18,'2019-01-27 12:00:00','j','2019-01-27 12:00:00','r');

更改表中数据:

1
2
3
4
update 数据表 set 数据 where 条件
列如:
update ruozedata.rzdata set stu_age=22 ;(如果不加条件表示表中 age全部变成22)
update ruozedata.rzdata set stu_age=26 where id=1;(表示 id为1的 年龄改成26)

删除表中数据:

1
2
delete from ruozedata.rzdata;  (表示删除表中所有数据)
delete from ruozedata.rzdata where stu_num=110;(删除stu_num 为110的这一条数据)

查询表中数据:

1
2
3
4
5
select * from ruozedata.rzdata;(表示查询表中所有数据)
select id,stu_name from ruozedata.rzdata;(表示查看表中id,和stu_name数据)
select id,stu_name from ruozedata.rzdata where stu_age=18;(表示查看stu_age=18这一条数据中的id和 stu_name的数据)
select * from ruozedata.rzdata where stu_age=18;
#假设你只想取 stu_name,stu_age两列 ,但是你的SQL是* 所有字段 这样会有额外的开销

生产中建字段注意事项:

1
2
3
4
#createtime cretime  ctime  cre_time create_time
#orderno order_no ordernum orderid
#两张表 order_no=orderid (这就不符合规范了,建字段前要先查看别人是怎么创建字段的,符合规矩)
#3.字段名称不允许中文 中文的汉语拼音 建字段

条件查询:

1
2
3
where  and  or
列如:select * from ruozedata.rzdata where stu_age=18 and stu_name='jepson';
select * from ruozedata.rzdata where stu_age=24 or stu_name='jepson';

模糊查询:

1
2
3
4
5
like
列如:select * from ruozedata.rzdata where stu_name like '%n%';
select * from ruozedata.rzdata where stu_name like 'j%';
select * from ruozedata.rzdata where stu_name like '%u';
select * from ruozedata.rzdata where stu_name like '__s%'; #占位符_ 第三个字母s

排序查询:

1
2
3
4
5
order by
select * from ruozedata.rzdata order by stu_age asc; (asc表示升序)
select * from ruozedata.rzdata order by stu_age desc;(desc表示降序)
按年龄升序 学号降序
select * from ruozedata.rzdata order by stu_age asc,stu_num desc;

限制行数查询:

1
select * from ruozedata.rzdata limit 2; (限制显示两行)
-------------本文结束感谢您的阅读-------------
0%