SQL学习(一)
来源:互联网 发布:360浏览器淘宝比价 编辑:程序博客网 时间:2024/04/30 05:48
一、基本概念
①基本概念
[1]记录:数据库表内容中的每一行都是一条记录
[2]字段:每条记录中的列称为字段
②数据类型
[1]主键:能够唯一标识当前记录的字段,为了保证主键值的唯一性,在MySQL中可以使用自增的int型数据作为主键。
[2]MySQL中的常用数据类型
(1)int类型:使用4个字节保存整数数据,一般不用指定长度。
(2)char类型:定长字符串,以固定长度保存字符串数据,使用时如果没有指定长度则默认为1,只能保存一个字符;如果指定长度则保存的字符个数不能超过这个长度;能够指定的长度数值最大为255。
(3)varchar类型:变长字符串,根据字符串的实际长度进行保存,所以必须指定长度。
值
CHAR(4)
存储需求
VARCHAR(4)
存储需求
'a'
' '
4个字节
'a'
1个字节
'ab'
'ab '
4个字节
'ab '
3个字节
'abcd'
'abcd'
4个字节
'abcd'
5个字节
'abcdefgh'
'abcd'
4个字节
'abcd'
5个字节
(4)double类型:双精度小数。以M,D方式指定长度,M=整数位+小数位,D=小数位。例如double(7,3)表示总长度为7位的小树,小数点后3位。D≤M≤255,0≤D≤30。可以不指定长度,默认情况下M≤15,如果总位数超过15位,则将小数部分四舍五入,四舍五入后如果还超过15位则以指数形式保存。
(5)float类型:单精度小数。以M,D方式指定长度,M=整数位+小数位,D=小数位。D≤M≤255,0≤D≤30。可以不指定长度,默认情况下M≤6,如果总位数超过6位,则将小数部分四舍五入,四舍五入后如果还超过6位则以指数形式保存。
(6)date类型:日期类型,格式是'YYYY-MM-DD'。按照标准的SQL,不允许其他格式。
二、数据库操作
创建一个保存员工信息的数据库
create database employee;
相关其他命令
show databases; #查看当前所有数据库
useemployee; #“使用”一个数据库,使其作为当前数据库三、表的操作
创建表
#语法
CREATETABLE 表名
(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型,
....
);
创建一个带主键约束的表:-- PRIMARY KEY 主键(非空且唯一) 通常用于确定唯一一条数
方式一:
CREATE TABLE emps (
#int类型,自增
emp_idINT AUTO_INCREMENT,
#主键
PRIMARY KEY (emp_id)
);方式二:
CREATE TABLE emp5(
id INT(7),
NAME VARCHAR(30)
);
ALTER TABLE emp5
ADD CONSTRAINT emp5_id_pk PRIMARY KEY(id);
-- 删除主键约束
ALTER TABLE emp5
DROP PRIMARY KEY;
添加外键约束: FOREIGN KEY 外键约束:关联另一个主键,出现在外键表中的数据一定出现在主键表中
CREATE TABLE dept(
dept_id INT(7) PRIMARY KEY,
dept_name VARCHAR(25)
);
CREATE TABLE emp6(
id INT,
NAME VARCHAR(20),
dept_id INT(7)
);
ALTER TABLE emp6
ADD CONSTRAINT emp6_dept_id_fk FOREIGN KEY(dept_id) REFERENCES dept(dept_id);
-- 删除外键约束
ALTER TABLE emp6
DROP FOREIGN KEY emp6_dept_id_fk;
CREATE TABLE emp(
id INT(7) PRIMARY KEY,
NAME VARCHAR(30),
depart_id INT(7),
CONSTRAINT emp_depart_id_fk FOREIGN KEY(depart_id) REFERENCES dept(dept_id)
ON DELETE SET NULL
-- ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除
-- ON DELETE SET NULL(级联置空): 子表中相应的列置空
);
约束:
-- NOT NULL 非空约束,规定某个字段不能为空
CREATE TABLE emp1(
id INT(7) NOT NULL, -- 列级约束
NAME VARCHAR(30)
);
-- 添加非空约束
ALTER TABLE emp1
MODIFY NAME VARCHAR(30) NOT NULL;
-- 取消非空约束
ALTER TABLE emp1
MODIFY NAME VARCHAR(30) NULL;
-- UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
CREATE TABLE emp2(
id INT(7),
NAME VARCHAR(30),
phone VARCHAR(30),
email VARCHAR(35),
CONSTRAINT emp2_name_un UNIQUE(NAME) -- 表级约束
);
-- 添加唯一约束
ALTER TABLE emp3
ADD CONSTRAINT emp3_name_un UNIQUE(NAME);
-- 删除唯一约束
ALTER TABLE emp3
DROP INDEX emp3_name_un;
- 联合约束
CREATE TABLE emp3(
id INT(7),
NAME VARCHAR(30),
phone VARCHAR(30),
email VARCHAR(35),
CONSTRAINT emp3_phone_email_un UNIQUE(phone, email)
);
- SQl学习(一)
- SQL学习(一)
- SQL学习总结(一)
- SQL优化学习(一)
- SQL学习笔记(一)
- SQL的学习(一)
- sql语句学习(一)
- SQL学习笔记(一)
- Oracle SQL 学习(一)
- sql学习笔记(一)
- sql学习笔记(一)
- SQL学习笔记(一)
- SQL学习笔记(一)
- SQL学习整理(一)
- sql学习笔记(一)
- SQL学习笔记(一)
- SQL基础学习(一)
- SQL基础学习(一)
- RobotFramework环境配置十:中文日志乱码问题
- 图片压缩处理的几种方式
- Android APP禁止旋转和软键盘的控制
- ExtJS4——图片上传
- git如何推送
- SQL学习(一)
- hadoop学习笔记(一)
- A potentially dangerous Request.Form value was detected from the client (FCKeditor="<img alt="" src=
- kalman滤波的本质
- 超长正整数相加(OJ)
- vue.js 快速理解
- nginx和tomcat搭配使用,让nginx可以访问tomcat下面的静态资源
- hadoop从零开始--linux下jdk,tomcat,mysql的安装
- Glide Android图片加载的利器---基本介绍和使用