MySQL基础
1,由瑞典MySQL AB公司开发,目前是属于Oracle公司
2,是开源关系型数据库管理系统。开源意味着没有盗版,关系型意味着跟oracle一样,表与表之间是一对多,多对一等关系
3,分为社区版和企业版。社区版不付费
语句规范:
关键字与函数名大写;
数据库名称,表名称,字段名称,小写;
sql语句以分号结尾;
PK:primary key 主键
NN:not null 不为空
UQ:unique 唯一约束
ZF:zero fill 值中最有意义的字节总为0,并且不保存。ZF个人理解指的是带有小数占位符的数据相当于金额类型的数据。
AI: auto increment 自增
BIN: binary 二进制(比text更大的二进制数据)
UN: unsigned 整数
#创建Test数据库,设置编码格式为utf8 CREATE DATABASE Test CHARACTER SET UTF8; #切换数据库 USE Test; #创建表 CREATE TABLE User ( id INT PRIMARY KEY AUTO_INCREMENT, userName varchar(20) NOT NULL, password varchar(20) NOT NULL, email varchar(20) NOT NULL ); DROP USER test; #%可以允许用户从任意主机访问 CREATE USER test@'%' IDENTIFIED BY '123456'; #授予Test数据库中的所有表的所有权限给test用户 GRANT ALL ON Test.* TO test; #刷新权限缓存 privileges特权 FLUSH PRIVILEGES;
#mysql特有的多条插入语句
INSERT INTO Grade(name) VALUES
('S1'),('S2'),('Y2');
INSERT INTO Student(gradeId,name) VALUES
(1,'张三'),(2,'李四'),(3,'王五'),(4,'赵六'),(5,'沈七');
#查询学生子表,所有学生以及所属年级 结果集中出现重复的列用as 起个别名
SELECT
s.id,
s.gradeId,
s.name,
g.name as gradeName
FROM Student s INNER JOIN Grade g ON s.gradeId=g.id
ORDER BY s.id;