Java登陆第二天——SQL之DDL

发布时间 2023-11-09 17:52:42作者: ocraft

SQL语句

SQL概括起来可以分为以下四组。(都是SQL,因为功能的不同,为了更好学习划分了类别)

DDL——数据定义语言。用于定义数据的结构。 指的是增,删,改数据库
DML——数据操作语言。用于检索或修改数据。 指的是增,删,改数据
DQL——数据查询语言。用于查询各种形式的数据。 指的是查询数据
DCL——数据控制语言。用于定义数据库用户的权限。 指的是管理数据库权限

SQL大小写不敏感!!
SQL大小写不敏感!!
SQL大小写不敏感!!

全凭个人习惯

DDL

专门用来操作数据库结构的SQL。

操作数据库

--这是mysql的注释,每条命令使用分号;结尾

--连接数据库,然后输入密码
mysql -u 用户名 -p

--查看所有数据库
show databases;

--切换数据库 (也就是使用某个数据库
use 数据库名;

--查看当前库所有表
show tables;

--查看当前数据库所有表
show tables;

--创建数据库
create database 库名;

--删除数据库
drop database 库名;

--查看创建某数据库使用的命令;
show create database 库名;

栗子:先连接数据库,再查看所有数据库,切换到某个数据库,并查看所有表。
SQL语句:

mysql -u root -p
密码
show databases;
use sys;
show tables;

程序运行结果:
image

栗子:创建Test21数据库,切换到它,并查看所有表,最后删除掉Test21。
SQL语句:

create database Test21;
use Test21;
show tables;
drop database Test21;

程序运行结果:
image

出现上述情况,是因为分号作为一句SQL代码的结束。
image
效果是一样的。

栗子:创建Test22数据库,再查看创建它使用的命令
SQL语句:

create database Test22;
show create database Test22;

程序运行结果:
image
默认编码是uft-8

增,删数据表

--创建数据表
create table 表名(
  `字段名` 数据类型(最大值) [default 默认值] 约束,
  ...
);
--创建数据表,增加判断			如果不存在就创建表
create table IF NOT EXISTS 表名();

--删除数据表
drop table 表名;

--查看创建某表单使用的命令;
show create table 表单名;

--查看数据表信息
desc 表名;

数据表中存放的是数据(也叫字段)常见的数据类型如下:

数据类型 描述
int 标准整数
bigint 较大的整数
float 浮点数
double 浮点数
char 字符串固定大小
varchar 可变字符串(对应Java的String)
text 文本串(保存大型的文本)
null 没有值。(null不等于0)

SQL可以给数据添加约束,丰富数据的功能,常见的约束如下:

约束名称 描述
NOT NULL 非空
UNIQUE 唯一
COMMENT 注释
DEFAULT 默认值
PRIMARY KEY 主键
FOREIGN KEY 外键
ENGINE 数据库引擎

栗子:创建UserTest数据库,切换到它,创建Test1表。
表内包含3个字段:
name数据类型为varchar最大值为32,不能为空;
age int(200),默认为20;
id int 主键,自增。

SQL语句:

create database UserTest;
use UserTest;
create table Test1(
name varchar(32) not null,
age int(200)  default 20,
id int primary key not null
);

程序运行结果:
image

修改数据表

--修改表名
alter table 表名 rename as 新表名;

--修改表之新增字段
alter table 表名 add 字段名 字段类型;

--修改表之修改字段名
alter table 表名 change 字段名 新字段名 字段类型;

--修改表之删除字段
alter table 表名 drop 字段名;

--查看数据表信息
desc 表名;

栗子:切换到UserTest数据库,创建Test2表并判断是否存在。
表内包含1个字段:
sex varchar(20) 非空,默认值为不知道,注释为性别。
然后再查看创建该表的命令,
修改表名为Test3,
最后查看所有表。

SQL语句:

use UserTest;
create table IF NOT EXISTS Test2(
sex varchar(20) default "不知道" comment '性别'
);
show create table Test2;
alter table Test2 rename as Test3;

程序运行结果:
image

栗子:切换到UserTest数据库,先查看Test3表,再修改。
新增两个字段:
T_name varchar(10);
T_phone char。
查看一次Test3表。
再修改字段T_phone类型为varchar(50)
查看一次Test3表。
再删除字段T_name。
最后再查看一次Test3表。

SQL语句:

use UserTest;
desc Test3;
alter table Test3 add T_name varchar(10);
alter table Test3 add T_phone char;
desc Test3;
alter table Test3 change T_phone T_phone varchar(50);
desc Test3;
alter table Test3 drop T_name;
desc Test3;

程序运行结果:
image
image