--查看当前日期
select current_date();
--查看当前时间
select current_time();
--查看当前日期、时间
select now();
--查看当前用户
select user();
--验证当前客户端用户
select current_user();
--查看创建表结构的语法
show create table tab_name;
--删除表
drop table tab_name;
--删除数据库
drop database database_name;
--查看当前数据库里所有的表
show tables;
--查询所有数据库
show databases;
--使用某一个数据库
use database_name
--改变结束符号
delimiter //
--使用储存过程
create procedure numx(x int )
begin
set @x=0;
set @sum=0;
repeat
set @x=@x+1;
set @sum=@sum+@x;
until @x=x end repeat;
end
create procedure addx(x int)
begin
set @x=0;
set @sum=1;
repeat
set @x=@x+1;
if @x%3=0 && @x%9!=0 then
set @sum = @x*@sum;
end if;
until @x=x end repeat;
end
--调用存储过程
call numx(100);
--删除存储过程
drop procedure numx;
--创一个表(主键,外键,约束,默认,自增长)
create table demo1(
demo1_id int auto_increment primary key,
demo1_name varchar(10) not null
)
create table demo(
demo_id int auto_increment primary key,--主键、自增长
demo_name varchar(20) not null,
demo_price float check ( price >= 0 ),
publish_at datetime,
created_at datestamp,
fk_id int foreign key references demo1(demo1_id)--外键设置
)
上面的语法可以使用,
但是从实际情况去考虑,(主外键的设置)应该这么做
主键建立:
alter table demo
add constraint pk_demo_id(这里是约束名) primary key demo(demo_id)
如果需要删除的话,语法如下
alert table demo
drop constraint pk_demo_id(这里是约束名哦)
外键建立
alter table demo
add constraint demo_fk_id(这里是约束名)
foreign key(fk_id) references demo1(demo1_id)
如果需要删除的话,语法如下
alert table demo
drop foreign key demo_fk_id(这里是约束名哦)
数据类型:
大致分为6类:
- 整数: bit / bool / tinyint / smallint / mediumint / int / bitint
- 浮点数: float / double / decimal
- 字符串: char / varchar / tinytext / text / mediumtext / longtext
- BLOB(Binary Large Object): tinyblob / blob / mediumblob / longblob
- 日期: date(2018-9-6) / time (03:33:49) / datetime(2018-9-6 03:34:08) / timestamp
- 其他: binary / varbinary / enum / set / geometry / point / LineString …
小提示:
char(n) 和 varchar(n)中间的n代表字符的个数,不是字节的个数哦。
char()是固定长度,varchar()是可变长度,
比如: 存储 字符 “abc” 对于char(10)就相当存储了三个字符(abc)和7个空格字符,而对于varchar(10)就是存储了三个字符(abc) 它是按照内容的实际长度来存储的。
varchar最大长度:
根据字符集,字符类型若为gbk,每一个字符占用2个字节,最大长度不能超过32766
字符类型若为utf8,每个字符最多占用3个字节,最大长度不能超过21845,
超过这个限制的话,会自动将类型转得更大一些的字符类型。
主键.primary key 从性能和实际出发,应该遵循下面几点:
1、尽量短,避免占用太多空间
2、唯一,不能跟其他行的数据重复
3、不会改变
4、代理建
所谓 -代理建- 是指跟业务无关的字段:
1、因为和业务无关,所以可以使用int等类型尽量短
2、因为和业务无关,所以可以避免因为业务变动引起的主键变化
3、不要相信自已的直觉,因为在直觉上感觉不会变的东西,往往都是经不起实践考验的。