sql刷题总结一(创建表、创建视图、创建索引、在已存在的表中新建一列)

一、创建表
1、常规创建

  创建一个student表(id、name、age)

CREATE TABLE IF NOT EXISTS student ( 
id BIGINT ( 11 ) PRIMARY KEY, 
name VARCHAR ( 20 ) NOT NULL, 
age INT ( 3 ) NOT NULL );
2、复制表格

  复制student表创建新表student_new

CREATE TABLE student_new LIKE student # 只复制表结构
CREATE TABLE student_new SELECT * FROM student # 复制表结构及数据
3、将表1的部分拿来创建表2

  创建一个student_new表,并且将student表中的所有name导入该表。

CREATE TABLE IF NOT EXISTS student_new (
name VARCHAR ( 20 ) NOT NULL )
SELECT name FROM actor;

  注意:创建数据表时,表名和字段名不需要用引号括起来

二、创建视图

  针对student表创建视图student_info_view,只包含name以及age两列。

CREATE VIEW student_info_view AS
SELECT name,age
FROM  student;
三、创建索引
1、使用Alter创建索引
# 添加主键索引
ALTER TABLE 表名 ADD Primary key (列名);
# 添加唯一索引
ALTER TABLE 表名 ADD unique 索引名 (列名);
# 添加普通索引
ALTER TABLE 表名 ADD index 索引名 (列名);
2、使用Create创建索引
# 添加唯一索引
create unique index 索引名 on table 表名(列名);
# 添加普通索引
create index 索引名 on table 表名(列名);
3、使用强制索引(FORCE INDEX)
SELECT 列名1,列名2,..
FROM 表名
FORCE INDEX(索引名)
WHERE ...

  说明:FORCE INDEX强制查询优化器使用指定的命名索引。查询优化器是MySQL数据库服务器中的一个组件,它为SQL语句提供最佳的执行计划。查询优化器使用可用的统计信息来提出所有候选计划中成本最低的计划。

四、在已存在的表中新建一列

  在student表后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为’2020-10-01 00:00:00’

ALTER TABLE student
ADD create_date datetime NOT NULL DEFAULT('2020-10-01 00:00:00');
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值