lab1
1 建表
step1
点击新建数据库,选中MySQL,点击下一步
step2
密码 Fuchen20050420
如果连接时,JDBC报错Public Key Retrieval is not allowed,可在mysql后加上 ?allowPublicKeyRetrieval=true。
2 一些操作
关于script
新建
运行
可视化操作
设置主键
右键表-创建-约束-设置主键
设置外键
右键表-创建-外键
编辑数据
Alt+Insert 新建一行
Delete 删除一行数据
查看ER图
右键-查看图
语法
数据类型
语法
插入数据
主键约束
- 用于约束该字段的值具有唯一性,至多有一个,可以没有,并且非空。比如学号、员工编号等。
- 语法
- 定义时:
<字段名> <数据类型> PRIMARY KEY - 定义后:
[CONSTRAINT <约束名>] PRIMARY KEY [字段名] - 修改表:
ALTER TABLE <数据表名> ADD PRIMARY KEY(<字段名>);
- 定义时:
- tips
如果主键有两列或更多列,则需设置联合主键,如设置st_id和name为联合主键:
PRIMARY KEY(st_id,name)
外键约束
- 外键约束是表的一个特殊字段,普遍会和主键约束一起使用,用来确保数据的一致性。
对于两个具有关联关系的表来说,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
所以外键就是用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。 - 语法
- 定义后:
[CONSTRAINT <约束名>] FOREIGN KEY [<外键名>](字段名1,字段名2...) REFERENCES <主表名>(主键字段名)
- 定义后:
- tips
表的外键关联的必须是主表的主键,且主键和外键的数据类型必须一致!
唯一约束
- 唯一约束就是指所有记录中字段的值不能重复出现,比如给'id'字段加上唯一约束之后,每条记录的id值都是唯一的,不能出现重复的情况。与主键约束不同的是,唯一约束在一个表中可以有多个,并且设置唯一约束的列是允许有空值的,虽然只能有一个空值。
- 语法
- 定义时:
<字段名> <数据类型> UNIQUE - 修改表:
ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);
- 定义时:
检查约束:
- 检查约束是用来检查数据表中字段值有效性的一种约束。
- 语法
- 定义时:
CHECK(<约束条件>) - 修改表:
ALTER TABLE <表名> ADD CONSTRAINT <检查约束名> CHECK(<检查约束>)
- 定义时:
非空约束
- 用来约束表中的字段不能为空。
- 语法
- 定义时:
<字段名> <数据类型> NOT NULL
- 定义时:
默认值约束
- 默认值约束是当数据表中某个字段不输入值的时候,自动为其添加一个已经设置好的值。
- 语法
- 定义时:
<字段名> <数据类型> DEFAULT <默认值>
- 定义时:
本次实验只需掌握简单的SELECT FROM WHERE即可
通俗理解就是 SELECT <你要挑出来的列名及其函数变换> FROM <要查询的表> WHERE <查询条件>
数据查询语言DQL(Data Query Language)
- 用于:关系运算后筛选取出数据
SELECT 字段1, 字段2, ... (或者 *) (选择哪些数据列)
FROM 表名[, 表名...] (从哪些表里选择)
[JOIN 表名 ON 相等条件表达式] (这些表怎么连接)
[WHERE 条件表达式] (得到的数据怎么筛选)
[GROUP BY 字段] (需不需要对结果集进行分组)
[HAVING 条件表达式] (筛选分组后通过聚合函数得到的值)
[ORDER BY 字段]; (指定排序方式)
时间相关函数
NOW() 返回当前的日期和时间
CURDATE 返回当前的日期
CURTIME() 返回当前的时间
DATE() 提取日期或日期/时间表达式的日期部分
EXTRACT() 返回日期/时间按的单独部分
DATE_ADD() 给日期添加指定的时间间隔
DATE_SUB() 从日期减去指定的时间间隔
DATEDIFF() 返回两个日期之间的天数
DATE_FORMAT() 用不同的格式显示日期/时间
用于以不同的格式显示日期/时间数据,实现将日期转换为字符
DATE_FORMAT(date,format)
通过参数设置的方式可实现多样的日期格式转化:
例子: 输出结果
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') Dec 29 2008 11:45 PM
DATE_FORMAT(NOW(),'%m-%d-%Y') 12-29-2008
DATE_FORMAT(NOW(),'%d %b %y') 29 Dec 08
DATE_FORMAT(NOW(),'%d %b %Y %T:%f') 29 Dec 2008 16:25:46
聚合函数
SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
AVG() - 返回平均值
COUNT() - 返回行数
FIRST() - 返回第一个记录的值
LAST() - 返回最后一个记录的值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回总和
Scalar 函数
SQL Scalar 函数基于输入值,返回一个单一的值。
UCASE() - 将某个字段转换为大写
LCASE() - 将某个字段转换为小写
MID() - 从某个文本字段提取字符,MySql 中使用
SubString(字段,1,end) - 从某个文本字段提取字符
LEN() - 返回某个文本字段的长度
ROUND() - 对某个数值字段进行指定小数位数的四舍五入
NOW() - 返回当前的系统日期和时间
FORMAT() - 格式化某个字段的显示方式















