良いプログラマ JavaのシェアのMySQL のSQLのエントリ(a)の紹介:データベースのさまざまなバージョンを、データベース内のデータを管理するための共通言語があり、それはSQLで、この章では、我々は、基本的なSQL文を学びます。
SQLの概要
構造化照会言語構造化照会言語は、専用のプログラミング言語であり、データやクエリにアクセスするためのデータベースクエリやプログラミング言語であり、更新およびリレーショナル・データベース・システムを管理します。
すべての主要なデータベースシステムは、SQLのコーディング仕様にいくつかの変更や拡張を行いました。だから、別のSQLデータベースシステム間で実際には完全に相互運用することはできませんが、ほとんどの後、私たちは、MySQLのバージョンは、メインマスターSQL構文の後に、あなたが他のデータベースに移行したいが比較的容易であることを学び、同じです。
構造化照会言語は、6つの部分から構成されています。
:データクエリ言語(DQL:データクエリ言語):
また、テーブルからデータを取得するために、「データ検索文」と呼ばれるそのステートメントは、アプリケーションは、データが指定されている方法を決定します。予約語は、DQLが(ただし、すべてのSQLのための)最もよく使われる動詞であるが、他のDQL一般的に予約語がWHERE、ORDER BY、GROUP BYおよびHAVING持って選択します。これらのDQLは、多くの場合、SQL文の他のタイプと一緒に使用される単語を禁じます。
2:データ操作言語(DML:データ操作言語):
その動詞の文は、INSERT、UPDATE、およびDELETEが含まれます。これらは、テーブルの行を追加、変更、および削除するために使用されています。また、アクションクエリ言語と呼ばれます。
III:トランザクション処理言語(TPL):
その声明は、あなたのテーブルがすべての行を更新するタイムリーにDML文に影響を与えていることを確認してください。TPLのステートメントは、BEGIN TRANSACTIONをCOMMIT、およびROLLBACK含まれています。
IV:データ制御言語(DCL):
これは、ステートメントGRANTまたはREVOKEでライセンスされて、個々のユーザーやユーザーグループは、データベース・オブジェクトへのアクセスを決定します。いくつかのRDBMSには、GRANTまたは列を形成REVOKEへのアクセスを制御するために使用することができます。
5:データ定義言語(DDL):
CREATE文は、その動詞とDROPが含まれています。新しいテーブルを作成したり、データベース内のテーブル(CREAT TABLEまたはDROP TABLE)を削除し、テーブルには、インデックスに参加。DDLは、人々のデータベースディレクトリにデータを取得するに関連する予約語の数を含んでいます。また、アクションクエリの一部です。
6:ポインタ制御言語(CCL):
これはDECLARE CURSORのようなステートメントは、CURRENTが1つ以上の操作を形成するために単独で使用されてINTOおよびUPDATEをFETCH。
この章では、DDLとDMLです導入しました。
MySQLのデータベース操作
基本的な構文があるのデータベースを作成します。
データベースのデータベース名を作成します。
また、データベースのデフォルトのキャラクタセットと照合順序を指定することができます。
データベースのデータベース名を作成します
デフォルトの文字は、COLLATE照合文字セットを設定します。
データベースを選択
データベース名を使用します。
データベースのキャラクタセットと照合順序を変更します。
データベースのデータベース名を変更します
デフォルトの文字は、COLLATE照合文字セットを設定します。
データベースを削除します。
データベースのデータベース名をドロップ。
データベースを削除する場合があるかどうかを確認します:
存在する場合、データベース名は、データベースをドロップします。
コード例:
1 .--データベースを削除
2.dropデータベースjava1903が存在する場合。
3 .--データベースを作成します。
4.createデータベースjava1903
5.default文字セットutf8mb4
6.collate utf8mb4_general_ci;
7 .--データベースを使用します
8.useのjava1903。
MySQLの一般的なデータ型
データベースを作成した後、私たちはテーブルを構築する必要があり、我々は、フィールドのデータ型を構築するために、テーブルを設定する必要があり、我々は一般的なMySQLのデータ型を理解するために開始します。
タイプ名 |
説明 |
ストレージ要件 |
TINYINT |
小さな整数 |
1つのバイト |
SMALLINT |
小さな整数 |
2ゆう祭り |
MEDIUMINT |
整数中規模 |
3バイト |
INT(INTEGHR) |
整数の通常のサイズ |
4つのバイト |
BIGINT |
大きな整数 |
8つのバイト |
2)小数型
タイプ名 |
説明 |
ストレージ要件 |
浮く |
単精度浮動小数点数 |
4つのバイト |
DOUBLE |
双精度浮点数 |
8 个字节 |
DECIMAL (M, D),DEC |
压缩的“严格”定点数 |
M+2 个字节 |
3) 日期/时间类型
类型名称 |
日期格式 |
日期范围 |
存储需求 |
YEAR |
YYYY |
1901 ~ 2155 |
1 个字节 |
TIME |
HH:MM:SS |
-838:59:59 ~ 838:59:59 |
3 个字节 |
DATE |
YYYY-MM-DD |
1000-01-01 ~ 9999-12-3 |
3 个字节 |
DATETIME |
YYYY-MM-DD HH:MM:SS |
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
8 个字节 |
TIMESTAMP |
YYYY-MM-DD HH:MM:SS |
1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC |
4 个字节 |
3) 字符串类型
类型名称 |
说明 |
存储需求 |
CHAR(M) |
固定长度非二进制字符串 |
M 字节,1<=M<=255 |
VARCHAR(M) |
变长非二进制字符串 |
L+1字节,在此,L< = M和 1<=M<=255 |
TINYTEXT |
非常小的非二进制字符串 |
L+1字节,在此,L<2^8 |
TEXT |
小的非二进制字符串 |
L+2字节,在此,L<2^16 |
MEDIUMTEXT |
中等大小的非二进制字符串 |
L+3字节,在此,L<2^24 |
LONGTEXT |
大的非二进制字符串 |
L+4字节,在此,L<2^32 |
ENUM |
枚举类型,只能有一个枚举字符串值 |
1或2个字节,取决于枚举值的数目 (最大值为65535) |
SET |
一个设置,字符串对象可以有零个或 多个SET成员 |
1、2、3、4或8个字节,取决于集合 成员的数量(最多64个成员) |
4) 二进制类型
类型名称 |
说明 |
存储需求 |
BIT(M) |
位字段类型 |
大约 (M+7)/8 字节 |
BINARY(M) |
固定长度二进制字符串 |
M 字节 |
VARBINARY (M) |
可变长度二进制字符串 |
M+1 字节 |
TINYBLOB (M) |
非常小的BLOB |
L+1 字节,在此,L<2^8 |
BLOB (M) |
小 BLOB |
L+2 字节,在此,L<2^16 |
MEDIUMBLOB (M) |
中等大小的BLOB |
L+3 字节,在此,L<2^24 |
LONGBLOB (M) |
非常大的BLOB |
L+4 字节,在此,L<2^32 |
表的操作
创建表:
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,会在下章介绍。