一、使用DDL定义数据表结构
1、SQL简介
SQL是结构化查询语言,是一种数据库查询和程序设计的语言。SQL也是数据库脚本文件的扩展名。
SQL的重要内容:DDL(数据定定义语言)和DML(数据操作语言)。
(1)DDL: 主要工作是用于定义和维护数据库以及数据表结构。(2)DML:实现对数据库中数据的操作( 增删改查 )。只要包括检索(查询)和更新(插入、删除、修改)。
2、创建数据库
在Navicat中编辑SQL代码的方法:
语法:create database 数据库名
【实例】
使用SQL语句创建一个名为
erp_system
的数据库。
【解答】
1 create database erp_system
3、删除数据库
语法:drop database 数据库名
【实例】
使用SQL语句删除数据库
erp_system
。
【解答】
1 drop database erp_system
4、查看数据库
语法:show database s
【实例】
查看所有的数据库
【解答】
1 show databases
5、创建数据表
语法:create table 表名(字段名1 字段1数据类型 字段1的约束,字段名2 字段2数据类型 字段2的约束,......字段名n 字段n数据类型 字段n的约束)
常用约束:
(1)主键约束: primary key(2)主键自动增长:auto_increment (3)唯一约束:unique(4)非空约束:not null(5)默认值约束:default
【实例】
使用SQL语句创建客户表结构:
【解答】
1 create table customers(
2 customerID int primary key auto_increment,
3 loginID varchar(20) not null unique,
4 pwd varchar(10) not null default '123456',
5 cName varchar(20) not null,
6 address varchar(50),
7 phone varchar(20)
8 )
注意点:
(1)在创建数据表时,需要选择在哪个数据库中创建,使用“use 数据库名”实现:
1 use erp_system
(2)在实际开发中,创建数据表时,一般
主键约束
和
唯一约束
放在后面:
1 create table customers(
2 customerID int auto_increment,
3 loginID varchar(20) not null,
4 pwd varchar(10) not null default '123456',
5 cName varchar(20) not null,
6 address varchar(50),
7 phone varchar(20),
8 primary key(customerID),
9 constraint unique_loginID unique(loginID)
10)
二、使用DDL维护表结构
1、修改表结构
语法:alter table 表名 修改子句
修改子句主要包括以下这些:
(1)新增字段
语法:add 字段名 字段数据类型 字段约束
【实例】
使用SQL语句在客户表(customers)中新增一个字段:
【解答】
1 alter table customers add customerType varchar(20) not null
(2)变更字段
语法:change 原字段名 新字段名 新字段数据类型 新字段约束
【实例】
将客户表(customers)中的“客户类型”字段变更为“客户业务”字段:
【解答】
1 alter table customers
2 change customerType customerBusiness varchar(50)
(3)更新字段
语法:modify 字段名 新的数据类型 新的约束
【实例】
将客户表(customers)中的“客户业务”字段进行内容更新,长度更新为100,
约束为“非空”:
【解答】
1 alter table customers
2 modify customerBusiness varchar(100) not null
(4)删除字段
语法:drop column 字段名
【实例】
将客户表(customers)中的“客户业务”字段删除:
【解答】
1 alter table customers drop column customerBusiness
(5)删除唯一约束
语法:drop index 唯一约束名
【实例】
将客户表(customers)中的唯一约束(unique_loginID)删除:
【解答】
1 alter table customers drop index unique_loginID
2、重命名表
语法:rename table 原表名 to 新表名
【实例】
将客户表(customers)的重命名为customer:
【解答】
1 rename table customers to customer
3、外键约束
(1)添加外键约束
语法:alter table 表名 add constraint 外键约束名 foreign key(添加外键约束的字段名) references 被引用的表(被引用表的主键)
【实例】
在学生表(student)中设置外键来引用专业表(major)中的主键:
【解答】
1 alter table student add constraint fk_major_name
2 foreign key(major_name) references major(major_name)
(2)删除外键约束
语法:alter table 表名 drop foreign key 外键约束名
【实例】
将学生表(student)中设置的外键删除:
【解答】
1 alter table student drop foreign key fk_major_name
三、使用DML新增和更新表数据
1、插入表记录
(1)插入一条记录
语法:insert into 表名(字段列表) values(值列表)
【实例】
在客户表(customers)中插入一条记录:
【解答】
1 insert into customers(customerID,loginID,pwd,cName,address,phone)
2 values(1001,'customer1001','c1001','华为','广东省深圳市','1001****')
说明:1)into可以省略,但 建议不省略 ;2)如果插入一条完整的记录,字段列表可以省略不写
1 insert into customers
2 values(1001,'customer1001','c1001','华为','广东省深圳市','1001****')
(2)插入多条记录
语法:insert into 表名(字段列表) values(值列表1,值列表2,...,值列表n)
【实例】
在客户表(customers)中插入多条记录:
【解答】
1 insert into customers
2 values(1002,'customer1002','c1002','京东','北京市','1002****'),
3 (1003,'customer1003','c1003','阿里巴巴','浙江省杭州市','1003****'),
4 (1004,'customer1004','c1004','腾讯','广东省深圳市','1004****')
2、修改表记录
语法:
update 表名 set 字段1=值1,字段2=值2,...,字段n=值n where 条件表达式
【实例】
将客户表(customers)中编号为1001的客户名称修改为“华为技术有限公司”
【解答】
1 update customers set cName='华为技术有限公司' where customerID=1001
四、使用DML删除表数据
1、删除没有被关联的表记录
语法:delete from 表名 where 条件表达式
【实例】
将客户表(customers)中客户姓名为“腾讯”的记录删除
【解答】
1 delete from customers where cName='腾讯'
注意:
如果不写条件,就会将表里面的数据全部删除
(谨慎使用)
1 delete from customers
2、删除被被关联(有外键)的表记录
语法:
【实例】
将专业表(major)中名称为“电子商务”的记录删除
【解答1】
设置”删除时”的状态为“restrict”(限制):
有引用关系的数据不能被删除:
【解答2】
设置”删除时”的状态为“
set null
”:
学生表中与“电子商务”相关联的数据被置为null:
【解答3】
设置”删除时”的状态为“
cascade
”:
学生表中与“电子商务”相关联的被删除(级联删除):(
谨慎使用
)