主页 > 软件开发  > 

sql基本语法+实验实践


sql语法 注释: 单行 --注释内容 # 注释内容

多行

/* 注释内容 */ 数据定义语言DDL

查询所有数据库

show databases;

注意是databases而不是database。

查询当前数据库

select database();

创建数据库

create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

删除数据库

drop database [if exists] 数据库名;

切换数据库

use 数据库名; 表操作 表的查询创建

查询当前数据库所有表

show tables;

注意是tables而不是table。

查看指定表结构

desc 表名;

查询指定表的建表语句

show create table 表名;

创建表结构

create table 表名( 字段1 字段1类型 [comment 字段1注释], 字段2 字段2类型 [comment 字段2注释], 字段3 字段3类型 [comment 字段3注释], ...... 字段n 字段n类型 [comment 字段m注释], )[comment 表注释];

注意:[…]内是可选参数,最后一个字段后面没有逗号。

表的修改操作

添加字段

alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];

修改数据类型

alter table 表名 modify 字段名 新数据类型(长度);

修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];

删除字段

alter table 表名 drop 字段名;

修改表名

alter table 表名 rename to 新表名; 表的删除操作

删除表

drop table [if exists] 表名;

删除指定表,并重新创建表

truncate table 表名; 数据操作语言DML 添加数据

给指定字段添加数据

insert into 表名 {字段名1, 字段名2,...} values{值1, 值2, ..};

给全部字段添加数据

insert into 表名 values (值1, 值2, ...);

批量添加数据

insert into 表名 (字段1, 字段2, ...) values (值1, 值2, ...),(值1, 值2, ...); insert into 表名 values (值1, 值2, ...), (值1, 值2, ...); 修改数据

修改数据的具体语法

update 表名 set 字段名1 = 值1, 字段名2 = 值2, ..{where 条件}; 删除数据 delete from 表名 {where 条件}; 数据查询语言DQL

查询多个字段

select 字段1, 字段2, 字段3,... from 表名; select * from 表名;

​ 注意:*号代表查询多有字段,在实际开发中尽量少用(不直观、影响效率)。

字段设置别名

select 字段1 [as 别名1], 字段2 [as 别名2], ... from 表名; select 字段1 [别名1], 字段2 [别名2], ... from 表名;

去除重复记录

select distinct 字段列表 from 表名; 实验

实验要求: 实验代码:

SHOW DATABASES; #1.使用SQL语句创建数据库studentsdb。 CREATE DATABASE if not exists studentsdb; #2. 使用SQL语句选择studentsdb为当前使用数据库。 USE studentsdb; #表student_info #3.使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。 CREATE TABLE student_info( 学号 CHAR(4) NOT NULL PRIMARY KEY, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2), 出生日期 DATE, 家庭住址 VARCHAR(50) ); #4.使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据,各表数据如表4-表6所示。 INSERT INTO student_info VALUES ('0001','张青平','男','2000-10-01','衡阳市东风路77号'), ('0002','刘东阳','男','1998-12-09','东阳市八一北路33号'), ('0003','马晓夏','女','1995-05-12','长岭市五一路763号'), ('0004','钱忠理','男','1994-09-23','滨海市洞庭大道279号'), ('0005','孙海洋','男','1995-04-03','长岛市解放路27号'), ('0006','郭小復','男','1997-11-10','南山市红旗路113号'), ('0007','肖月玲','女','1996-12-07','东方市南京路11号'), ('0008','张玲珑','女','1997-12-24','滨江市新建路97号'); #7. 使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。 ALTER TABLE student_info ADD 备注 VARCHAR(50); DESC student_info; SELECT * FROM student_info; DROP table student_info; #表curriculum CREATE TABLE curriculum( 课程编号 CHAR(4) NOT NULL PRIMARY KEY, 课程名称 VARCHAR(50) NOT NULL, 学分 INT ); INSERT INTO curriculum VALUES ('0001','计算机应用基础',2), ('0002','C语言程序设计',2), ('0003','数据库原理及应用',2), ('0004','英语',4), ('0005','高等数学',4); #5. 使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。 UPDATE curriculum SET 课程名称 = ''; SELECT * FROM curriculum; DROP TABLE curriculum; #表grade CREATE TABLE grade( 学号 CHAR(4) NOT NULL, 课程名称 VARCHAR(50) NOT NULL, 分数 INT ); ALTER TABLE grade ADD PRIMARY KEY (学号,课程名称); INSERT INTO grade VALUES ('0001','0001',80), ('0001','0002',91), ('0001','0003',88), ('0001','0004',85), ('0001','0005',77), ('0002','0001',73), ('0002','0002',68), ('0002','0003',80), ('0002','0004',79), ('0002','0005',73), ('0003','0001',84), ('0003','0002',92), ('0003','0003',81), ('0003','0004',82), ('0003','0005',75); #6. 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。 ALTER TABLE grade MODIFY 分数 DECIMAL(5,2); DESC grade; SELECT * from grade; DROP table grade; #8. 使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。 CREATE DATABASE if not exists studb; USE studb; CREATE TABLE stu( 学号 CHAR(4) NOT NULL PRIMARY KEY, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2), 出生日期 DATE, 家庭住址 VARCHAR(50) ); INSERT INTO stu VALUES ('0001','张青平','男','2000-10-01','衡阳市东风路77号'), ('0002','刘东阳','男','1998-12-09','东阳市八一北路33号'), ('0003','马晓夏','女','1995-05-12','长岭市五一路763号'), ('0004','钱忠理','男','1994-09-23','滨海市洞庭大道279号'), ('0005','孙海洋','男','1995-04-03','长岛市解放路27号'), ('0006','郭小復','男','1997-11-10','南山市红旗路113号'), ('0007','肖月玲','女','1996-12-07','东方市南京路11号'), ('0008','张玲珑','女','1997-12-24','滨江市新建路97号'); ALTER TABLE stu ADD 备注 VARCHAR(50); DESC stu; SELECT * FROM stu; #9. 使用SQL语句删除表stu中学号为0004的记录。 DELETE FROM stu WHERE 学号 = '0004'; #10.使用SQL语句更新表stu中学号为0002的家庭住址为“滨江市新建路96号”。 UPDATE stu SET 家庭住址 = '滨江市新建路96号' WHERE 学号 = '0002'; #11.删除表stu的“备注”列。 ALTER TABLE stu DROP 备注; SELECT * FROM stu; #12.删除表stu。 DROP TABLE stu; SHOW TABLES; #13.删除数据库studb。 DROP DATABASE studb; SHOW DATABASES;

注意:为了结果可视化,在问题的实现步骤最后都进行了展示数据库、表结构或表数据等。 如果有任何问题欢迎提出!!

标签:

sql基本语法+实验实践由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“sql基本语法+实验实践