专栏首页A2DataDay2 | 数据库操作-DDL

Day2 | 数据库操作-DDL

DDL

DDL(Data Definition Language)是连接存储世界与现实世界的高铁!

主要用途: 对数据库对象进行创建、修改、删除等操作。 操作对象: 数据库、数据表、列、索引等。 定义命令:

  • CREATE:创建数据库或表的命令。
  • DROP:删除已建数据库或表。
  • ALTER:添加、修改或删除列,更新表名,字段类型等。

数据库操作

1、创建数据库

-- IF NOT EXISTS --- 不存在则创建,存在则不创建
CREATE DATABASE IF NOT EXISTS DataScience;

2、删除数据库

1、查看所有数据库
SHOW DATABASES;

2、删除指定数据库
DROP DATABASE IF EXISTS DataScience;

3、修改数据库字符集

1、查看数据库字符集
SHOW VARIABLES LIKE'character_set_database';

2、修改数据库字符集
ALTER DATABASE DataScience character SET 'gbk';

4、进入数据库

USE DataSciecne;

mysql> use
    -> datascience;
Query OK, 0 rows affected (0.00 sec)

数据表操作

1、创建表

语法

CREATE TABLE tab_name(
column_name1 type[len],
column_name2 type[len],
......
column_nameN type[len])
PRIMARY KEY (`id`)
[ ENGINE=InnoDB  #存储引擎
DEFAULT CHARSET=utf8];  #字符集

创建用户表

CREATE TABLE FansUser(
user_id int not null comment '用户ID',
user_name varchar(30) not null comment '名称',
age int,
tel int not null comment '电话',
sex bit default 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、删除表

1、查看目前所有数据表
SHOW TABLES;

2、删除指定数据表
DROP TABLE IF EXISTS FansUser;

3、修改表

3.0、表名

alter table FansUser rename FansUser1; --修改表名

ALTER TABLE FansUser RENAME User;
||
ALTER TABLE User RENAME To FansUser;

3.1、列名

ALTER TABLE FansUser CHANGE COLUMN old_column_name new_column_name varchar(30);--修改表列名

ALTER TABLE User change COLUMN sex status bit(1);

3.2、列的类型和约束

alter table User modify status char(10) --修改表列类型

alter table User change status sex bit(1) -- 修改类型及列名

3.3、新增列

注意:添加新列如无特殊约束条件,则默认添加到最后一列;如果添加到指定位置,则需要注意约束条件的正确使用。

  • FIRST 表示添加到列表的第一列
  • AFTER 表示添加到某个列之后
-- 指定位置
ALTER TABLE user ADD COLUMN remove bit(1) AFTER age;

-- 默认添加
alter table user add  column name1 varchar(10); --添加表列

3.4、删除列

ALTER  TABLE user DROP column_name1;

4、复制表

user 表存在,user1 不存在。

4.0、结构

-- 要复制的表 在后边。 
# like 只是复制表结构
CREATE TABLE user1 LIKE user;
||

-- 通过关键字as
create table user1 as select * from user limit 0;
||
create table user1 select * from user limit 0;

4.1、数据及内容

--通过关键字as通过复制另一张表的表结构和数据创建新表
create table user1 as select * from user;

4.2、部分数据

# 根据条件创建表,并且将查询出来得数,存入表中
create table user1 as selecet * from user where age<25;

4.3、部分字段

# 查询部分字段数据
create table user1 as select age,name form user;

索引

索引相当于数据表的目录,其优点是可以提高检索数据的速度,但同时也增加了系统维护工作,以及会减慢写入速度。

索引不适用场景

  • 数据较少的表或列
  • 查询频率较低的列
  • 数据类型为 TEXT 、IMAGE、BIT 的数据
  • 字段经常性修改
  • 不常出现在 WHERE 子句及排序的字段

索引选取类型

  • 占用空间较少的数据型优选
  • 简单的整型数据优于字符型
  • 避开存在 NULL 以及 NOT NULL的字段

索引选取字段

  • 数据表的主键、外键
  • 常与其他数据表进行连接的字段
  • 常出现在 WHERE 子句中的字段
  • 常用于排序的字段

1、创建索引

方法一:在创建表时创建索引

CREATE TABLE table_name
column_name1 type[len],
column_name2 type[len],
......
column_nameN type[len])
[UNIQUE/FULLTEXT/SPATIAL] INDEX [index_name](column_name[(length)])

方法二:在已存在的表中创建索引

CREATE [UNIQUE/FULLTEXT/SPATIAL] INDEX index_name
ON table_name(column_name[(length)])

关于length参数:如果是 CHAR,VARCHAR 类型,length 可以小于字段实际长度;如果是 BLOB 和 TEXT 类型,必须指定length。

2、查看索引&删除索引

索引不能修改,想更改索引只能删除后重新创建。

查看:
SHOW INDEX FROM table_name;
删除:
DROP INDEX index_name ON table_name;

今日小练习

1.下面关于查询说法错误的是?(单选)

A.查询执行时先执行主查询再执行子查询

B.子查询中可以包含ORDER BY而不能包含GROUP BY

C.子查询可以引用外部查询表中的列

D.主查询和子查询必须从相同的表中获取数据

2.创建视图A时,若A视图已存在则更新A视图,那么应使用的关键字是?(单选)

A.UODATE B.OR UPDATE

C.REPLACE D.OR REPLA

本文分享自微信公众号 - DataScience(DataScienceTeam),作者:Data君

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • EXCEL 与 MySQL 数据互通

    各位可爱的小伙伴儿们!还记得上周五的 DBeaver 安装大法么?!在文章的最后,简单粗暴的介绍了该工具的简单功能。也许有的小伙伴儿已经愉快的开始进行练习,也许...

    DataScience
  • HDFS ACL权限管理 初解

    Hadoop中的ACL与Linux中的ACL机制基本相同,都是用于为文件系统提供更精细化的权限控制。

    DataScience
  • 磁盘这么分区你知道了吗?

    首先选择要分区的磁盘,主要操作的时候要两外加一个磁盘哦,sda为系统盘,千万不要随意操作。

    DataScience
  • MyCat------基于java语言的数据库中间件

    出现勾选的即成功! 再次强调,千万不要配成主库的ip,截图中的128就是错误示范 , 三个字代表我的心情,mmp~~~

    时间静止不是简史
  • MySQL命令总结

    “` sql – 常用权限 create,alter,drop,insert,update,delete,select… – 分配所有权限 all pr...

    zhengzongwei
  • Jenkinsfile里定义对象和函数,获取git提交人, 发送钉钉通知

    自从开始使用Jenkinsfile作为Jenkins配置后就一发不可收,因为开发者自定义CI脚本实在太方便了。

    Ryan-Miao
  • AMD的规范演化

    对于web项目来说,打交道的不仅仅有后台,前台页面也是少不了的,而前台的页面js也常常是我们后台程序员必须要使用的语言, 今天说下项目中的js的组织方式。

    付威
  • 【观点】吴军:三个案例透析大数据思维的核心

    逻辑推理能力是人类特有的本领,给出原因,我们能够通过逻辑推理得到结果。在过去,我们一直非常强调因果关系,一方面是因为我们常常是先有原因,再有结果,另一方面...

    钱塘数据
  • 吴军:三个案例透析大数据思维的核心

    大数据文摘
  • 吴军:三个案例透析大数据思维的核心

    以下三个案例分别来自药品研发、司法判决与广告投放,从三个不同的角度了解大数据思维的核心。

    华章科技

扫码关注云+社区

领取腾讯云代金券