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;