前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL学习4_DDL

MySQL学习4_DDL

作者头像
皮大大
发布2021-03-02 14:39:00
3790
发布2021-03-02 14:39:00
举报
文章被收录于专栏:机器学习/数据可视化

关于进入数据库

代码语言:javascript
复制
mysql -uroot -p    //使用这种方式,接下来需要输入密码。密码是暗文
mysql -uroot -p123456  // 可以直接将密码123456放在参数p的后面,不安全

参数解释:

  • u:指定用户
  • p:指定密码

DDL

DDL,data defination language,指的是数据定义语言,其主要作用是创建数据库,对库表的结构进行删除和修改等操作。

全部命令

代码语言:javascript
复制
1. 数据库操作
show databases;     // 显示所有的数据库
use school;     // 使用school数据库
create database school;  // 创建数据库
drop database school;  // 删除某个数据库

2. 表操作
-- 创建表
create table user(字段1,字段2,...,字段n);   

-- 查看创建表的SQL语句
show create table user;

-- 查看表的结构
desc user;

-- 删除表
drop table user;

-- 修改表名
alter table user rename to users;

数据库操作

代码语言:javascript
复制
show databases;     // 显示所有的数据库
use school;     // 使用school数据库
create database school;  // 创建数据库
drop database school;  // 删除某个数据库
代码语言:javascript
复制
mysql> show databases;   // 显示数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| peter              |
| school             |
| sys                |
+--------------------+
6 rows in set (0.04 sec)

mysql> use school;   // 选择使用数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

表操作

代码语言:javascript
复制
// 1、创建表
create table user(字段1,
                  字段2, 
                  ..., 
                  字段n
                  );    // 最后的分号不能忘记
                  
// 2、查看所有的表
show tables;

// 3、查看表的结构
desc user;

// 4、查看创建表的SQL语句
show create table user;

// 5、删除表
drop table user;

// 6、修改表名
alter table user rename to users;   # 表名改为users;to可省略
  • 最后的分号不能忘记?
  • 最后的分号不能忘记?
  • 最后的分号不能忘记?
代码语言:javascript
复制
mysql> use school;  // 使用一个数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;  //  查看数据库下的所有表
+------------------+
| Tables_in_school |
+------------------+
| course           |
| score            |
| student          |
| teacher          |
| total            |
+------------------+
5 rows in set (0.00 sec)
创建表
  • 主键primary keyauto_increment必须连在一起使用
  • 书写规范:每个字段的语句最好分行写,容易检查
  • 最后的分号不能忘记
代码语言:javascript
复制
# 创建user表:6种字段+1个主键

create table user( id int(10) unsigned not null auto_increment comment "user_id",   //将id作为主键
                  name varchar(20) not null comment "user_name", 
                  email varchar(50) not null comment "user_email", 
                  age tinyint unsigned not null comment "user_age", 
                  fee decimal(10,2) not null default 0.00 comment "user_fee", 
                  createTime timestamp not null comment "user_time", 
                  primary key(id)  
                 );    // 记得分号
查看表结构
代码语言:javascript
复制
mysql> desc user;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id         | int(10) unsigned    | NO   | PRI | NULL              | auto_increment              |
| name       | varchar(20)         | NO   |     | NULL              |                             |
| email      | varchar(50)         | NO   |     | NULL              |                             |
| age        | tinyint(3) unsigned | NO   |     | NULL              |                             |
| fee        | decimal(10,2)       | NO   |     | 0.00              |                             |
| createTime | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+---------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.02 sec)
查看创建表的SQL语句
代码语言:javascript
复制
show create table user;
字段操作

关键词是alter,先选中需要操作的表。

  • modify:修改
  • change:改变名字
  • add:添加字段
    • 默认是末尾
    • 指定位置添加
代码语言:javascript
复制
// 修改字段信息
alter table user modify name varchar(50) not null;   # 将字段name 从20改为50个字符

// 修改字段名字
alter table user change email user_email varchar(50) not null;  # 将email改成user_email

// 末尾添加字段
alter table user add password char(30) not null comment "user_password";   # 增加password字段

// 指定位置添加字段
alter table user add password1 char(30) not null comment "user_password1" after user_name;   # 在name后面增加password1字段

// 删除字段
alter table user drop password1;        #删除字段password1
代码语言:javascript
复制
// 原来的表格信息

mysql> desc user;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id         | int(10) unsigned    | NO   | PRI | NULL              | auto_increment              |
| name       | varchar(20)         | NO   |     | NULL              |                             |
| email      | varchar(50)         | NO   |     | NULL              |                             |
| age        | tinyint(3) unsigned | NO   |     | NULL              |                             |
| fee        | decimal(10,2)       | NO   |     | 0.00              |                             |
| createTime | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+---------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.00 sec)

# 修改字段信息
mysql> alter table user modify name varchar(50); 
# 修改字段名字
mysql> alter table user change email user_email varchar(50) not null;
# 添加字段,末尾
mysql> alter table user add password char(30) not null comment "user_password";
# 指定位置添加字段
mysql> alter table user add password1 char(30) not null comment "user_password1" after name;

mysql> desc user;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| id         | int(10) unsigned    | NO   | PRI | NULL              | auto_increment              |
| name       | varchar(50)         | YES  |     | NULL              |                             |
| password1  | char(30)            | NO   |     | NULL              |                             |
| user_email | varchar(50)         | NO   |     | NULL              |                             |
| age        | tinyint(3) unsigned | NO   |     | NULL              |                             |
| fee        | decimal(10,2)       | NO   |     | 0.00              |                             |
| createTime | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| password   | char(30)            | NO   |     | NULL              |                             |
+------------+---------------------+------+-----+-------------------+-----------------------------+
8 rows in set (0.00 sec)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于进入数据库
  • DDL
  • 全部命令
  • 数据库操作
  • 表操作
    • 创建表
      • 查看表结构
        • 查看创建表的SQL语句
          • 字段操作
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档