mysql

数据库都学完了,然而我正要开始学习,,这真是一个忧伤的故事。。

一点一点来吧,现在把mysql的一些基本语句mark一下,以后也好看看:)


mysql版本:5.7.6(版本不同语法会有些不同)设置环境为:不区分大小写

show databases; 或者show schemas;显示数据库中存在的模式(mysql中写database 和 schema 似乎是一样的,下面就全部写schema吧)
use <模式名>; 例如:use st; 表示进入st这个模式
create schema <模式名>; 创建模式
drop schema <模式名>;  删除指定模式

desc <表名>; 查看表结构

show tables; 显示所有表

show create table <表名>;显示此表的创建命令

select * from <表名>; 查看相应表中内容

drop table <表名>; 删除相应表

insert into <表名>(列属性1,列属性2...) values('列属性值1','列属性值2',...); 插入数据

delete from <表名> where 属性x='xxx' and 属性y='yyy';删除属性x值为xxx并且属性y值为yyy的数据

group by <列属性> :   其实就是去重。可以和MAX等一起用,因为去重留下来的那个可以选择的,MAX就是选择最大的留下来。GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。(用于将相同属性合在一起的)  http://www.w3school.com.cn/sql/sql_groupby.asp

 having : SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数(SUM,COUNT等)一起使用。

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

只查看某个表中所有列名:select column_name from information_schema.columns where table_schema='数据库名称' and table_name='表名';

select * from <表名> where 属性x like "%属性值%";在表中模糊查找含有某个字段内容的数据

select left(<列属性>, len) from <表名> limit num; 在某个表中找出某列属性的前num个值,并且这些值都只取前len位


format(a,b); a保留b位小数,a可以是列属性名 

concat(x,y,z); 连接x,y,z。可以是字符串,也可以写列属性名

concat_ws(a,x,y,z);有分隔符的字符串连接,分隔符为a

group_concat(x,y,z); 行转列,也算是字符串连接

substr(s,a,len); 取子串,从s的第a个字符开始,长度为len


下面建立几个表:

CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,  /*列级完整性约束条件,Sno是主码*/
 Sname CHAR(20) UNIQUE,   /*Sname取唯一值*/
 Sex CHAR(2),
 Sage SMALLINT,
 Sdept  CHAR(20)
);

CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
 Cname CHAR(40),
 Cpno CHAR(4),
 Ccredit SMALLINT,
 FOREIGN KEY (Cpno) REFERENCES Course(Cno)  /* 被参照表示Course,被参照列是Cno 。只是想说明自己可以参照自己,但并没有什么用。。*/
);

CREATE TABLE sc
(Sno CHAR(9),
 Cno CHAR (4),
 Grade SMALLINT,
 PRIMARY KEY (Sno,Cno),  /*主码由两个属性构成,必须作为表级完整性进行定义*/
 FOREIGN KEY (Sno) REFERENCES Student(Sno),  /*表级完整性约束条件,Sno是外码,被参照表是Student*/
 FOREIGN KEY (Cno) REFERENCES Course(Cno)   
);


参照完整性约束:外码的值必须与被参照表的相应主码值相同,否则为空(无法插入值)。

CREATE TABLE tb_news
(Id int PRIMARY KEY AUTO_INCREMENT NOT NULL, /*Id 作为主键,自增长,非空*/
 Content LONGTEXT NOT NULL /*Content类型为长文本,属性非空*/
)default charset=utf8 auto_increment=1; /*设置默认字符集编码、防止中文乱码,自增长幅度为1*/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值