前言:各种版本的数据库中,有一种通用的语言用于管理数据库中的数据,它就是SQL,本章我们将学习基本的SQL语句。 SQL的概述 Structured Query Language 结构化查询语言,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 各种主流的数据库系统都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用,但大部分是相同的,后面我们学习的是MySQL的版本,掌握SQL主要语法之后,要迁移到其它数据库也是比较容易的。 结构化查询语言包含6个部分: 一:数据查询语言(DQL:Data Query Language): 其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。 二:数据操作语言(DML:Data Manipulation Language): 其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。 三:事务处理语言(TPL): 它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。 四:数据控制语言(DCL): 它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。 五:数据定义语言(DDL): 其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。 六:指针控制语言(CCL): 它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。 本章我们主要介绍的是DDL和DML。 MySQL数据库的操作 创建数据库的基本语法是: create database 数据库名; 还可以给数据库指定默认的字符集以及排序规则: create database 数据库名 default character set 字符集 collate 排序规则; 选择数据库 use 数据库名; 修改数据库的字符集和排序规则: alter database 数据库名 default character set 字符集 collate 排序规则; 删除数据库: drop database 数据库名; 删除时检查数据库是否存在: drop database if exists 数据库名; 代码示例: 1.-- 删除数据库 2.drop database if exists java1903; 3.-- 创建数据库 4.create database java1903 5.default character set utf8mb4 6.collate utf8mb4_general_ci; 7.-- 使用数据库 8.use java1903; MySQL常见的数据类型 创建好数据库后,我们就需要建表,建表我们需要设置字段的数据类型,我们先来了解MySQL中常见的数据类型。
2)小数类型
3) 日期/时间类型
3) 字符串类型
4) 二进制类型
表的操作 创建表: create table 表名 ( 字段名 数据类型 [约束], 字段名 数据类型 [约束], .... ) 主要的约束类型有: primary key 主键,表中只能有一个,不能重复,不能为空 not null 非空,必须填写 unique 唯一,不能重复 auto_increment 自动增长,必须是整数类型,不需要手动插入 foreign key 外键,建立表之间的引用关系 删除表: drop table 表名; 删除表时进行检查: drop table if exists 表名; 修改表,添加字段: alter table 表名 add column 字段名 数据类型; 修改表,删除字段: alter table 表名 drop column 字段名; 查看表结构: desc 表名; 代码示例: 9.-- 删除表 10.drop table if exists tb_student; 11.-- 创建学生表 12.create table tb_student 13.( 14. stu_id int primary key auto_increment, 15. stu_name varchar(20) not null, 16. stu_age int not null, 17. stu_gender varchar(1) not null, 18. stu_address varchar(200) 19.); 数据操作语言DML 数据操作语言有插入、删除和更新语句组成。 单行插入: insert into 表名(字段名,字段名,字段名..) values(值,值,值..); 多行插入 insert into 表名(字段名,字段名,字段名..) values(值,值,值..),(值,值,值..),(值,值,值..); 将一张表数据插入另一张表 insert into 表1(字段名,字段名,字段名..) select 字段名,字段名,字段名 from 表2; 删除所有数据 delete from 表名; 清空表 truncate table 表名; 带条件的删除 delete from 表名 [where 条件]; 更新 update 表名 set 字段 = 值,字段 = 值... [where 条件]; 代码示例: 20.-- 插入一行学生记录 21.insert into tb_student(stu_name,stu_age,stu_gender,stu_address) 22.values('赵六',30,'男','上海'); 23.-- 插入多行学生 24.insert into tb_student(stu_name,stu_age,stu_gender,stu_address) 25.values('陈七',20,'男','武汉'),('陈大七',28,'男','上海'),('陈小七',18,'男','北京'); 26.-- 删除学号为3的学生 27.delete from tb_student where stu_id = 3; 28.-- 全部删除 29.delete from tb_student; 30.-- 清空表 31.truncate table tb_student; 32.-- 更新陈七的年龄为23,性别为女 33.update tb_student set stu_age = 23,stu_gender = '女' 34.where stu_name = '陈七'; 总结 本章我们学习了SQL语言中的DDL和DML,能实现建表建表和数据的增删改操作,还有一个重要的查询操作,也就是DQL,会在下章介绍。 |
|
来自: 好程序员IT > 《Java培训教程》