[努力努力再努力] mysql中的一些基础知识

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

	 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;
	 

视野开阔:

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

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

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

字段类型:

	 数值类型:
	         int   整数
	         long  长整数
	         float 单精度
	         double 双精度
	         decimal 小数值:一般用于金额字段
	  字符串类型
	  		 char	  定长字符串 0-255字节
	  		 varchar  变长字符串 0-65535字节
	  日期和时间类型
	  		 date   日期 YYYY-MM-DD
	  		 time   时间 HH:MM:SS
	  		 datetime
	  		 timestamp

数据库类型分为:

	 DDL:create  drop
	 DML:inisert update delete select
	 DCL:grant

创建表:

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

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

约束:

	 primary key = unique+not null
	 唯一约束  unique
	 非空约束  not null
	 默认约束 

创建表:

#表 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)
);

向表中插入数据:

	 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');

更改表中数据:

	 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)

删除表中数据:

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

查询表中数据:

	 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是* 所有字段 这样会有额外的开销

生产中建字段注意事项:

#createtime cretime  ctime  cre_time create_time
#orderno order_no  ordernum orderid
#两张表  order_no=orderid   (这就不符合规范了,建字段前要先查看别人是怎么创建字段的,符合规矩)
#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';

模糊查询:

	 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
	 

排序查询:

	 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;

限制行数查询:

select * from ruozedata.rzdata limit 2; (限制显示两行)

猜你喜欢

转载自blog.csdn.net/qq_42585142/article/details/88187419