数据库1

新建库

create DATABASE a1 CHARSET utf8;

删除库

DROP DATABASE a1;

使用库

一般不这么用,使用的时候,一般就直接双击就好了,方便快捷;

USE a1;

查看库

1

查看现在所有的库名

SHOW DATABASEs;

2,查看当前使用的库

SELECT DATABASE();

3,查看创建库信息

SHOW CREATE DATABASE a1;

表操作:

创建表;

CREATE TABLE info(id int not NULL auto_increment PRIMARY KEY,
NAME VARCHAR(50) not NULL,
sex Char(2) NULL
)

查看表:

SELECT * FROM info;       #查看表
DESC info;                      #查看表结构

show CREATE table info;   #查看表创建信息

删除表

DROP TABLE info;

添加表字段:

ALTER TABLE info add age int not NULL;

删除表字段

ALTER TABLE info drop age;

改变字段属性

ALTER TABLE info MODIFY name CHAR(23) null;

修改表字段名

ALTER table info CHANGE NAME name2 VARCHAR(45) not NULL;

添加主键

需要注意的是,添加主键的时候,表一定不能是设置成自动递增的

先去除自增

alter table info1 modify id int null , drop primary key;

 

ALTER TABLE info add PRIMARY KEY(id,name)

删除主键

ALTER TABLE info drop PRIMARY key;

设置默认值;

ALTER TABLE info ALTER sex SET DEFAULT '';

删除默认值

ALTER TABLE info ALTER sex  DROP DEFAULT;

修改表名

RENAME TABLE info to info1

复制表

CREATE TABLE info2 SELECT * FROM info1 ;

复制一行

:主键自增/索引/触发器/外键 不会 被复制

会复制数据

CREATE TABLE info3 SELECT * FROM info1 WHERE id=1;

复制结构

数据/触发器/外键 不会被复制 

会复制主键自增

CREATE TABLE info5 SELECT * FROM info1 WHERE 1!=1;

 

CREATE TABLE info2 LIKE info1;

数据操作;

1增

这种增的方法是有多少字段就要添加几项

INSERT INTO info1 VALUES(2,'陈平安','');

如果选择添加

需要注意的是此时,除了id其余的不要设置主键,和不可以为空

INSERT INTO info1(id,name) VALUES(4,'');

 同时也可以一次性增加多个:

INSERT into info1(id,name) VALUES(8,'七娃'),(9,'六娃')

删除:

 删除指定数据

DELETE FROM info1 WHERE id='0'

删除整张表中所有数据

DELETE FROM info1

清空整张表

truncate  info1;
1、TRUNCATE 在各种表上无论是大的还是小的都非常快。而DELETE 操作会被表中数据量的大小影响其执行效率.
2、TRUNCATE是一个DDL语言而DELETE是DML语句,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE不能触发触发器,DELETE会触发触发器。
4、当表被清空后表和表的索引和自增主键将重新设置成初始大小,而delete则不能。

修改

指定修改

UPDATE info1 set sex='女娃',name='小六' WHERE id=1;

1简单查询

查询所有

SELECT * FROM info1;

按指定字段查询

select name,sex FROM info1;

为字段起别名

select name,sex as '' FROM info1;

可进行列表列运算

SELECT name+34 FROM info1;

去重复查询

select DISTINCT name FROM info1;

distinct后面可以同时跟着几个字段,如果跟着多个字段,意思就是,要同时满足这几个条件才能去重复

2 条件查询

运算符

SELECT * FROM info1 WHERE age>20;
SELECT * FROM info1 WHERE age<20;
SELECT * FROM info1 WHERE age<=20;
SELECT * FROM info1 WHERE age>=20;
SELECT * FROM info1 WHERE age<>20;
SELECT * FROM info1 WHERE age!=20;

关键字null

SELECT * FROM info1 WHERE sex is not NULL;
SELECT * FROM info1 WHERE age is NULL;
SELECT * FROM info1 WHERE sex = '';

这里需要注意的是当需要输入字符串的栏里,如果是空的,那么此时应该用=而不是null

3逻辑运算,and  or

SELECT * FROM info1 WHERE age=23 and sex='';
SELECT * FROM info1 WHERE age=23 or sex='';
SELECT * FROM info1 WHERE not (age=23 or sex='');

4区间查询

SELECT * FROM info1 WHERE age between 18 and 20;

5 集合查询

SELECT * FROM info1 WHERE id in(1,3);

6 模糊查询

SELECT * FROM info1 WHERE name LIKE '%e%';  包含什么
SELECT * FROM info1 WHERE name LIKE 'e%';      以什么开头
SELECT * FROM info1 WHERE name LIKE '%e';      以什么结尾
SELECT * FROM info1 WHERE name LIKE '__%e';     下划线占位符

7 排序查询

SELECT * FROM info1 order by age desc;
SELECT * FROM info1 order by convert (name using gbk) desc;  中文排序

 

posted @ 2018-02-27 16:26  许光宗  阅读(100)  评论(0编辑  收藏  举报