SQL语句ddl dml学习

一、结构化查询语句sql

结构化查询语句分类作用及常见关键词
DDL定义和管理数据对象。 CREATE、DROP、ALTER
DML用于操作数据库对象中锁包含的数据 。INSERT、UPDATE、DELETE
DQL用于查询数据库数据 。SELECT、FROM、WHERE
DCL用于设置/更改数据库用户权限。 GRANT、REVOKE、COMMIT、ROLLBACK

二、DDL语句常见用法

2.1数据库相关

创建数据库

create database if not exists 数据库名;
完整版
create database 数据库名 set 编码方式 collate 排序规则

删除数据库

drop database 数据库名;
drop database if not exists 数据库名;

查看所有数据库

show databases;

选中指定数据库(使用):

use 数据库名;

mysql> use mysql;
Database changed
mysql> 

查看当前所用的数据库

select databse();

mysql> select database();
+------------+
| database() |
+------------+
| kb21       |
+------------+
1 row in set (0.00 sec)
mysql>

2.2表相关

创建表

create table if not exists 表名(字段1(类型),字段2(类型));

mysql> create table `teacher`(`id` int (10),`name` varchar(32));
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql>
更完整的建表
mysql> create table if not exists teacher(`id` int(10) primary key auto_increment,`name` varchar(32) not null comment "老师姓名",`age` int not null comment "老师年龄",`tel` varchar(32) not null default "021-43579802" comment "练习电话",`email` varchar(255),`school` varchar(100) default "南京大学");
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql>

primary key 主键
auto_increment 自增(可以不用输入了会自动增长1)
not null 该值不能为空
comment 注释

查看表结构

desc 表名;

mysql> desc teacher;
+--------+--------------+------+-----+--------------+----------------+
| Field  | Type         | Null | Key | Default      | Extra          |
+--------+--------------+------+-----+--------------+----------------+
| id     | int          | NO   | PRI | NULL         | auto_increment |
| name   | varchar(32)  | NO   |     | NULL         |                |
| age    | int          | NO   |     | NULL         |                |
| tel    | varchar(32)  | NO   |     | 021-43579802 |                |
| email  | varchar(255) | YES  |     | NULL         |                |
| school | varchar(100) | YES  |     | 南京大学     |                |
+--------+--------------+------+-----+--------------+----------------+
6 rows in set (0.00 sec)

mysql>

查看建表语句

show create table 表名;

show create table teacher;
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                           |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| teacher | CREATE TABLE `teacher` (
  `id` int DEFAULT NULL,
  `name` varchar(32) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
mysql>

查看当前数据库中所有的表

show tables;

mysql> show tables;
+----------------+
| Tables_in_kb21 |
+----------------+
| stu            |
| teacher        |
+----------------+
2 rows in set (0.01 sec)
mysql>

删除表

drop table 表名;
drop table if exists 表名;

mysql> drop table if exists stu;
Query OK, 0 rows affected (0.03 sec)
mysql>

查看表

select * from 表名

mysql> select * from teacher;
+----+------+-----+--------------+-----------+--------------+
| id | name | age | tel          | email     | school       |
+----+------+-----+--------------+-----------+--------------+
|  1 | zls  |  29 | 021-43579802 | NULL      | 南京大学     |
|  2 | zls  |  29 | 15815624332  | lj@qq.com | 清华大学     |
+----+------+-----+--------------+-----------+--------------+
2 rows in set (0.00 sec)
mysql>

设置引擎类型

创建表 engine=MyISAM;

DML语句常见用法

插入语句

insert into 表名(字段) values(值);

插入数据,如果该字段设置为not null(不允许为空),则必须设置值

mysql> insert into stu(id,name) values(1,'zs');
Query OK, 1 row affected (0.01 sec)
mysql>

修改表名

rename
alter table 旧表名 rename as 新表名;

mysql> alter table demo01 rename as demo1;
Query OK, 0 rows affected (0.01 sec)

mysql>

修改字段

change
alter table 要修改的表名 change 要修改的字段 字段类型 …;

mysql> alter table demo1 change name uname varchar(50) not null default "未知"; 
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>

新增列

add
alter table 要修改的表名 add 新增字段名 字段类型 …;

mysql> alter table demo1 add upwd varchar(50) not null default "123456";
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>

删除列

drop
alter table 要修改的表名 drop 要删除的列(字段名);

mysql> alter table demo1 drop upwd;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>

三、数据值和列类型

列类型

规定数据库中该列存放的数据类型
分为:

  • 数值类型
  • 字符串类型
  • 日期和时间值类型
  • null值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值