数据库常用sql 语句

##一、数据库操作:

** 1、查看数据库:

**  >SHOW DATABASES;

**  2、创建数据库:

**  >CREATE DATABASE db_name;  //db_name为数据库名

**  3、使用数据库:

**  >USE db_name;

**  4、删除数据库:

** >DROP DATABASE db_name;

##二、创建表:

####1、创建表:

** >CREATE TABLE table_name(

** >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。

** >name VARCHAR(60) NOT NULL

**>score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默认列值

**>PRIMARY KEY(id)

** >)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索>DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码如果有条件的创建数据表还可以使用   >CREATE TABLE IF NOT EXISTS tb_name(........

####2、复制表:

**>CREATE TABLE tb_name2 SELECT * FROM tb_name;

**或者部分复制:

**>CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

####3、创建临时表:

**>CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);

**4、查看数据库中可用的表:

**>SHOW TABLES;

####5、查看表的结构:

**>DESCRIBE tb_name;

**也可以使用:

***>SHOW COLUMNS in tb_name;     //from也可以

####6、删除表:

**>DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

**实例:

***>DROP TABLE IF EXISTS tb_name;

####7、表重命名:

**>RENAME TABLE name_old TO name_new;

**还可以使用:

**>ALTER TABLE name_old RENAME name_new;

##三、修改表:

**1、更改表结构:

**>ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容...

**实例:

**>ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

**>ALTER TABLE tb_name DROP address;

**>ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

##四、插入数据:

####1、插入数据:

**>INSERT INTO tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULL,'张五',134);

**这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。

**2、插入检索出来的数据:

**>INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

##五、更新数据:

####1、指定更新数据:

**>UPDATE tb_name SET score=189 WHERE id=2;

**>UPDATE tablename SET columnName=NewValue [ WHERE condition ]

##六、删除数据:

####1、删除数据:

**>DELETE FROM tb_name WHERE id=3;

##七、条件控制:

####1、WHERE 语句:

**>SELECT * FROM tb_name WHERE id=3;

####2、HAVING 语句:

**>SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

**3、相关条件控制符:

** =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOTAND 、OR

Linke()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)

IS NULL 空值检测

##八、MySQL的一些函数:

####1、字符串链接——CONCAT()

**>SELECT CONCAT(name,'=>',score) FROM tb_name

####2、数学函数:

**AVG、SUM、MAX、MIN、COUNT;

####3、文本处理函数:

**TRIM、LOCATE、UPPER、LOWER、SUBSTRING

####4、运算符:

**+、-、*、\

####5、时间函数:

**DATE()、CURTIME()、DAY()、YEAR()、NOW().....

##九、分组查询:

**1、分组查询可以按照指定的列进行分组:

**>SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

**2、条件使用Having;

**3、ORDER BY 排序:

**ORDER BY DESC|ASC    =>按数据的降序和升序排列

##十 触发器

**触发器是指在进行某项指定操作时,触发触发器内指定的操作;

**1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

**2、创建触发器:

**>CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

**>INSERT语句,触发语句,返回一个值

**3、删除触发器

**>DROP TRIGGER trig;

##十一、全文检索——MATCH和AGAINST

**1、SELECT MATCH(note_text)AGAINST('PICASO') FROM tb_name;

**2、InnoDB引擎不支持全文检索,MyISAM可以;

##十二、视图

**1、创建视图

**>CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

**2、视图的特殊作用:

**a、简化表之间的联结(把联结写在select中);

**b、重新格式化输出检索的数据(TRIM,CONCAT等函数);

**c、过滤不想要的数据(select部分)

**d、使用视图计算字段值,如汇总这样的值。

你可能感兴趣的:(数据库常用sql 语句)