mySql学习笔记(一)

一、基础

1.创建数据库 

CREATE DATABASE `db1`

2.显示已有的数据库

SHOW DATABASES

3.创建tabel

CREATE TABLE tb1 (
	empid VARCHAR(10),
  name VARCHAR(10),
	age INT
);

4.显示所有表

SHOW TABLES

5.指定字符编码创建表

CREATE TABLE tb1 (
	empid VARCHAR(10),
  name VARCHAR(10),
	age INT
) CHARSET = utf8

6.显示表的列结构

DESC tb1

7.向表中插入数据

INSERT INTO tb1 VALUES('A101', 'JIE', 99);

8.查询表数据

SELECT * FROM tb1

9.复制表

-- 将tb1的数据复制到创建表tb1A中
CREATE TABLE tb1A SELECT * FROM tb1

-- 将tb1的数据复制到现有表tb1A中
INSERT INTO tb1A SELECT * FROM tb1

-- 选择其中一列复制
INSERT INTO tb1A(name) SELECT empid FROM tb1

 10.删除表中所有记录

DELETE FROM tb1a

11.删除表

-- 删除表tb1a
DROP TABLE tb1a

-- 当表tb1a存在时删除
DROP TABLE IF EXISTS tb1a

 12.删除数据库

DROP DATABASE 数据库名

二、数据类型

1.数值类型

常用的数值型数据类型

 2.字符串类型

常用的字符串数据类型

 3.日期与时间类型

常用的日期与时间数据类型

 三、修改表

1.修改表的列结构

修改列的定义:ALTER TABLE ... MODIFY...

添加列:ALTER TABLE...ADD...

修改列名和定义:ALTER TABLE...CHANGE...

删除列:ALTER TABLE...DROP...

后续详细举例

2.修改列的数据类型

ALTER TABLE tb1a MODIFY name VARCHAR(100)

3.添加列

-- 添加列
ALTER TABLE tb1a ADD birth DATETIME

-- 把列添加到最前面
ALTER TABLE tb1a ADD birth DATETIME FIRST

-- 把列添加到任意位置(放在empid后面)
ALTER TABLE tb1a ADD birth DATETIME AFTER empid

4.修改列的位置

ALTER TABLE tb1a MODIFY birth DATETIME FIRST

5.修改列名和数据类型

-- 将birth 更改为 birthday,类型更改为 DATE
ALTER TABLE tb1a CHANGE birth birthday DATE

6.删除列

ALTER TABLE tb1a DROP birth

7.设置主键(PRIMARY KEY)

功能:

1.没有重复的值

2.不允许输入空值(NULL)

CREATE TABLE t_pk (a INT PRIMARY KEY, b VARCHAR(10))

8.设置唯一键(UNIQUE)

功能:

1.不允许重复(允许null)

CREATE TABLE t_uniq (a INT UNIQUE, b VARCHAR(10))

9.设置自增列(AUTO_INCREMENT)

1.数据类型为INT等整数类型

2.加上AUTO_INCREMENT

3.设置PRIMARY KEY,使列具有唯一性

CREATE TABLE t_auto_incr (a INT AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10)) CHARSET = utf8

INSERT INTO t_auto_incr (b)  VALUES('子');
INSERT INTO t_auto_incr (b)  VALUES('丑');
INSERT INTO t_auto_incr (b)  VALUES('寅');
INSERT INTO t_auto_incr (b)  VALUES('卯');

10.创建索引

功能:

当表中数据量过于庞大,查找操作就会花费很多时间,建立索引后,查找时就不用对全表进行扫描,可以缩短查找时间。

注:在设置主键的情况下,索引会自动创建。

-- 在表tb1a上给列empid添加索引my_ind
CREATE INDEX my_ind ON tb1a (empid);

11.显示索引

SHOW INDEX FROM tb1a

12.删除索引

DROP INDEX my_ind ON tb1a

注:索引和处理速度的关系

创建了索引并不代表一定会缩短查找时间。因为根据查找条件的不同,有时候不需要用到索引,而且在某些情况下,使用索引反而会花费更多的时间。

例如,人们都说在相同值较多(重复值较多)的情况下最好不要创建索引。我们举一个极端的例子,当某列中只有“YES”和“NO”这两个值时,即使在该列上创建索引也不会提高处理速度。

索引的创建是影响整个数据库处理效率的重要问题。我们把这种提高处理效率的对策称为调优(tuning)

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CJ-杰

打赏描述

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值