MYSQL的基本知识及命令(数据库,表,索引,视图,触发器的命令)

MYSQL基础命令[未完待续!]

  • 一.数据库基本操作
    • a.数据库的创建
    • b.数据库的查看
    • c. 数据库的删除
  • 二.表的基本操作
    • a.表的创建
    • b.表的展示
    • c.表的删除
    • d.表的修改
      • 1.修改表名
      • 2.增加字段
      • 3.删除字段
      • 4.修改字段
        • *修改字段数据类型
        • *修改字段名字
        • *同时修改字段与属性
        • *修改字段顺序
    • e.表的约束
      • 1.表的完整性约束
        • *在表格创建完以后插入外键
        • *非空约束(not null ,NK )
        • *设置字段默认值(default)
  • 三.索引的操作
    • a.索引的简介
    • b. 索引的创建
      • 1、在创建表格时创建索引
      • 2、在已存在的表格上创建索引
        • *第一种
        • *第二种
    • c.索引的删除
    • d.索引的查看
  • 四.视图的操作
    • a.视图的简介
    • b.视图创建
      • 1.单表视图的创建
      • 2.多表视图的创建
    • c.视图的查看
    • d.视图的删除
    • e.视图的修改
    • f、视图的更新
      • 1、检索数据
      • 2、添加数据
      • 3、删除数据
      • 4、更新数据
  • 五、触发器的操作
    • a.触发器简介
    • b.触发器创建
      • 1、第一种
      • 2、第二种:包含多条执行语句的触发器
    • c.触发器查看
      • 1、第一种:通过show triggers语句
      • 2、第二种:通过查看系统表triggers
    • d.触发器删除

一.数据库基本操作

a.数据库的创建

CREATE DATABASE test

b.数据库的查看

SHOW DATABASES

c. 数据库的删除

DROP DATABASE test

二.表的基本操作

a.表的创建

USE  test        //选择数据库
CREATE TABLE  t_book(
id INT PRIMARY KEY,
b_name VARCHAR(50) NOT NULL,
price DECIMAL(4,2) 
)

b.表的展示

show  tables    //查看所有表
DESC t_book    //展示表的结构
SHOW CREATE TABLE t_book  //查看表的创建时的详细语句
SELECT * FROM  t_book1    //使用查询语句展示表中所有语句

c.表的删除

DROP TABLE t_book1

d.表的修改

1.修改表名

ALTER TABLE t_book RENAME t_book1

2.增加字段

ALTER TABLE t_book1 ADD descri VARCHAR(50)    //增加字段descri VARCHAR(50)
ALTER TABLE t_book1 ADD de VARCHAR(50) FIRST    //在最开始添加字段
ALTER TABLE t_book1 ADD hah VARCHAR(10) AFTER id    //在ID后添加字段

3.删除字段

ALTER TABLE t_book1 DROP de

4.修改字段

*修改字段数据类型

ALTER TABLE t_book1 MODIFY descri CHAR(40)

*修改字段名字

ALTER TABLE t_book1 CHANGE descri descrip CHAR(40)

*同时修改字段与属性

ALTER TABLE t_book1 CHANGE descrip descri VARCHAR(50) 
DESC t_book1

*修改字段顺序

ALTER TABLE t_book1 MODIFY descri VARCHAR(50) AFTER b_name

e.表的约束

1.表的完整性约束

PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录
FOREIGN KEY (FK) 标识该字段为该表的外键
NOT NULL 标识该字段不能为空
UNIQUE KEY (UK) 标识该字段的值是唯一的
AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT 为该字段设置默认值
UNSIGNED 无符号
ZEROFILL 使用0填充

1,在表的创建时期,添加于字段之后
2,在表创建过后添加,使用alter

*在表格创建完以后插入外键

ALTER TABLE book_order ADD book_id INT NOT NULL UNIQUE;
ALTER TABLE book_order ADD CONSTRAINT FOREIGN KEY (book_id) REFERENCES book(book_id)  

*非空约束(not null ,NK )

CREATE TABLE user4(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
)

*设置字段默认值(default)

p1

create table tb1(
    nid int not null defalut 2,
    num int not null
  );

p2

create table st(
    sid int  primary key ,
    name varchar(30) not null,
    age int(3) unsigned not null default 18,
    sex enum('male','female') default 'male',
    hobby set('play','study','read','music') default 'play,music'
    );

2.在表创建完以后修改/添加完整性约束

ALTER TABLE t_book1  ADD unique(b_name);

三.索引的操作

a.索引的简介

索引类似于书的目录,可以提高从表中检索数据的速度。索引创建在表上,由一个或多个字段生成的键组成。
由索引的存储类型,可以分为B型树索引(BTREE)和哈希索引(HASH)

MYSQL 支持的索引:普通索引,唯一索引,全文索引,单列索引,多列索引和空间索引。

索引的优点是提高了查找速度,缺点是过多的索引会占用磁盘空间。以下几种情况适合创建索引:

  • 1、经常被查询的字段,在where中出现的字段
  • 2、在分组的字段,在group by 子句中出现的字段。
  • 3、存在依赖关系的子表与父表之间的联合查询,即主键或外键字段。
  • 4、设置唯一完整性约束的字段

b. 索引的创建

1、在创建表格时创建索引

INDEX | KEY  [别名] ( 属性名  【长度】【ASC|DESC 】) ;

eg:

CREATE TABLE t_pre (
id INT AUTO_INCREMENT ,
PRIMARY KEY (id),
t_name VARCHAR(50) NOT NULL UNIQUE,
descrip VARCHAR(50) DEFAULT 'null',
INDEX index_name (t_name)    //创建索引
)

2、在已存在的表格上创建索引

*第一种

DESC t_pre
CREATE INDEX t_id ON t_pre(id ASC)  //创建索引,并使其升序排列

*第二种

ALTER TABLE t_pre ADD UNIQUE INDEX index_name (t_name)

c.索引的删除

DROP INDEX index_name ON t_pre;

d.索引的查看

除了通过查询语句以外,还可以通过查看创建表格时的语句

SHOW CREATE TABLE t_pre;

四.视图的操作

a.视图的简介

视图,从本质上是一种虚拟表,视图并不在数据库中以存储数据的形式存在,行和列数据来自自定义视图的查询所引用的基本表。
数据库中存储的是视图的定义。
而对视图内容的更新(增加,删除,修改)直接影响的是基本表。
当视图的数据来自多个基本表时,不允许添加和删除基本表。

b.视图创建

1.单表视图的创建

CREATE VIEW v1(i,n) AS SELECT id,t_name FROM t_pre;

2.多表视图的创建

CREATE VIEW v2(b,p) AS SELECT bookname,booktypename FROM t_book,t_booktype WHERE t_book.id= t_booktype.id

c.视图的查看

DESCRIBE v_id
DESC v_id       //查看视图设计信息
SHOW TABLE STATUS LIKE 'v_id' //显示视图的详细信息
SHOW CREATE VIEW v_id  //查看视图定义信息

d.视图的删除

DROP VIEW view_name [,view_name2 、、]

e.视图的修改

1、先先删除,再重新创建
2、直接使用alter修改

ALTER VIEW v_id(b,bt,p) AS SELECT bookname,booktypename,price  FROM book,booktype WHERE book.id = booktype.id;

f、视图的更新

先介绍一下,视图在某些情况下,是不可以更新的,比如:

  • 1、不包含非空的列。
  • 2、有select + 数学表达式。
  • 3、有select +聚合函数的列
  • 4、select +distinct/union/top/group by/having、、、的句子

1、检索数据

第一种情况:

SELECT ** FROM view_name;

第二种情况:
用view操作基本表的数据

2、添加数据

INSERT INTO v4(id,b_name,price,order_id)
VALUES (11,'all is well',22.3,23)

3、删除数据

DELETE FROM v4 WHERE b_name='all is well' ;

4、更新数据

UPDATE v4 SET price=32.5 WHERE b_name='pear1'

五、触发器的操作

a.触发器简介

触发器类似于编程语言中的函数,均需要声明、执行,但是它是由事件触发的。
一般触发事件是 delete/insert/update

b.触发器创建

1、第一种

CREATE TRIGGER trigger_name 
BEFORE|AFTER trigger_even 
ON table_name FOR EACH ROW
trigger_STMT

eg.

CREATE TRIGGER tri_test
AFTER INSERT
ON t_book FOR EACH ROW
INSERT INTO t_test VALUES(1,'t_book')

2、第二种:包含多条执行语句的触发器

DELIMITER $$
CREATE TRIGGER trigger_name 
BEFORE|AFTER trigger_even 
ON table_name FOR EACH ROW
BEGIN
trigger_STMT;
END 
$$
DELIMITER 

c.触发器查看

1、第一种:通过show triggers语句

SHOW TRIGGERS  

2、第二种:通过查看系统表triggers

USE information_schema;
SELECT * FROM TRIGGERS
select * from triggers where trigger_name = ' tri_num '

d.触发器删除

DROP TRIGGER tri_name

你可能感兴趣的:(SQL)