Mysql数据库:端口号3306,超级用户 root unsigned 正值
修改提示符:--prompt 提示符
常见定义
参数:\D 完整的日期 \d当前数据库 \h服务器名称 \u 当前用户
数据是否可以为空:NULL NOT NULL
编号:与主键组合使用,起始值为1. AUTO_INCREMENT
主键:PRIMARY KEY或者KEY。每张表只存在一个主键;主键自动设置为NOT NULL;主键保证记录唯一性。编号必须和主键配合使用,而主键不一定和编号配合使用。
外键:FOREIGN KEY。保持数据的一致性,完整性;实现一对一或一对多的关系。外键列和参照列必须有相似的数据类型。若是数字,则其长度和有无符号位必须相同,而字符的长度可以不同。数据表的存储引擎只能是InnoDB。
子表:具有外键列,子表所参照的表叫做父表。
唯一约束:UNIQUE KEY。允许为空;每张表可以有多个唯一约束;保证记录唯一性(存储过程中保留空值只能有一个)。
默认值:DEFAULT。当插入字段是,如果没有明确赋值,系统自动赋予默认值。
外键约束的参照操作:
- 1、CASCADE:在父表中进行删除或更新时,子表对应行也进行改变。
- 2、SET NULL:必须保证子表列没有设置成NOT NULL情况下,才能随父表进行删除或更新,并设置子表中的外键列为NULL。
- 3、RESTRICT:拒绝对父表的删除或者更新。
- 4、NO ACTION:与RESTRICT相同。
数据类型
整型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT)
浮点型(FLOAT[(M、D]、DOUBLE[(M、 D)])M数字总位数 D小数点后总位数
日期时间型:YEAR TIME DATE DATATIME TIMESTAMP
常用sql语句
show status like 'uptime'; // 查询数据库开启时间
show status like 'com_insert'; // 查询insert操作次数,可以换成update、select等
show status like 'slow_queries'; // 显示慢查询的次数
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; //创建数据库
ALTER {DATABASE|SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name; //修改数据库编码方式
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name; //删除数据库
CREATE USER 'yzw' INDITIFIED BY '123456'; //创建用户
GRAND ALL PRIVILEGES test.sudent TO yzw INDITIFIED BY '123456'; //用户授权,如果授权部分权限时可以将all privileges改为 select,insert,update等
SET PASSWORD FOR 'yzw' = password('123123'); //修改用户密码
REVOKE PRIVILEGE ON test.student FROM 'yzw'; // 删除用户权限,可将privilege改为select,insert,update从而删除部分权限
DROP USER 'yzw'; //删除用户
SHOW GRANDS FOR 'yzw'; //查看用户权限
CREATE TABLE [IF NOT EXISTS] table_name (
id TINYINT NOT NULL,
name VARCHAR(10),
INDEX (id),
PRIMARY KEY (name),
);//创建数据表
SHOW TABLE [FROM db_name] [LIKE 'pattern'|WHERE expr] //查看数据表
SHOW COLUMNS FROM tbl_name //查看数据表结构
INSERT [INTO] tbl_name [(col_name)] VALUES (val,......); //插入记录
FOREIGN KEY (f_name) REFERENCES tbl_name (p_name); //外键约束
SHOW CREATR TABLE tbl_name; //显示表结构
SHOW INDEXES FROM tbl_name (\G按列显示); //显示索引
ALTER TABLE tbl_name ADD 字段名 数据类型 约束条件[FIRST|AFTER col_name]; //添加一列
ALTER TABLE tbl_name ADD[CONSTERAINT(约束)[symbol(约束名字)]] PRIMAEY KEY[index_type](index_col_name(主键),.....); //添加主键约束
ALTER TABLE tbl1 ALTER SET/DROP age DEFAULT'34'; //添加或删除默认约束
ALTER TABLE tbl DROP PRIMARY KEY;(只有一个主键不需要写名字) //删除主键约束
ALTER TABLE tbl DROP {INDEX|KEY} index_name; //删除唯一约束
ALTER TABLE tbl MODIFY[COLUMN] id (要修改成的条件) SMALLINT....[FIRSE|AFTER col_name(某个字段)] //修改列定义
ALTER TABLE tbl RENAME [TO|AS] tbl1; //数据表更名
RENAME tbl TO tbl1 [tb TO tb1,.......]
DELETE FROM tbl WHERE id=1; //删除表中数据
//查找语句
SELECT id AS userid,username AS uname FROM users; //为表中的字段重新定义一个名字
//GROUP BY:分组显示
//HAVING:分组条件
//ORDER BY:对分组进行排列[ACE|DESC]
//LIMIT:限制查询返回数量
SELECT*FROM users LIMIT 2;
SELECT*FROM users LIMIT 3,2;
//子查询(SubQuery):嵌套在查询内部,放在圆括号里面。
//将查询后的结果写入表中
INSERT [INTO] tbl [(id,username)]
SELCET...
//连接类型:
//1、内连接(INNER JOIN):显示两表中符合连接条件的部分。
//2、左外连接(LEFT[OUTER] JOIN):显示左表中的全部和右表中符合条件的部分。
//3、右外连接(RIGHT[OUTER] JOIN)
//两张表连接更新:
//方法一:
UPDATE tbl1(要更新的表) INNER JOIN tbl2(参考表) ON tbl1.id=tbl2.id(条件) SET...
//方法二:创建一张新表,创建新的字段用于保存查找后的结果。
CREATE TABLE [IF NOT EXIST] tbl
create_name ....
SELECT...
//当两张表连接时,两表中存在相同的字段,因此可以给同名字段赋予不同的别名。数据表在使用过程中可以赋予别名使用。
// mysql 生成日报、周报、月报和年报方法
1、日报/周报/月报/年报
select date/week/month/year (F_InputDate) as date, count(F_Id) as count from t_inquiry group by date;
2、某年某月
select date_format(F_InputDate,'%Y-%m') as date, count(F_Id) from t_inquiry group by date;
3、某年某周
select date_format(F_InputDate,'%Y-%w') as date, count(F_Id) from t_inquiry group by date;
dater_format() 方法参数说明