MYSQL的简单使用(2)

自增长与主键

自增长命令:AUTO_INCREMENT
能够自增长的一定是主键,但主键并不一定都是自增长。

当插入NULL值和default值时,都会在原有的数值基础上自增长1。

重新设定自增长的初始值:

  ALTER TABLE  TB_NAME AUTO_INCREMNT  =  所需要的值 ;

非空约束

非空约束命令:NOT NULL
如果插入NULL则报错

默认值

用default来赋初值 在不传入新值时,则使用默认值。

赋值命令
default(数字/字符/字符串) ;

唯一性约束

unique [ key ]只能省略key,而[primary] key只能省略primary

使用时顺序:

 字段名称 字段类型 [unsigned | zerofill ]  [ not null ]  [ default 默认值] [ [PRIMARY] KEY |  UNIQUE[ KEY]]   [ AUTO_INCREMENT]

数据表的重命名

以user10 变 user11为例:

ALTER TABLE user10 RENAME T0  user11 :

ALTER TABLE user10 RENAME AS  user11 :

ALTER TABLE user10 RENAME  user11 :

RENAME  TABLE user10 TO user11;

重命名命令:

       ALTER TABLE TB_NAME RENAME T0 / AS NEW TB_NAME :
        ALTER TABLE TB_NAME RENAME  NEW TB_NAME :
        RENAME TABLE TB_NAME  TO  NEW TB_NAME :

添加和删除字段

添加字段:

  ALTER TABLE user10 ADD card CHAR(18);

  ALTER TABLE user10  ADD test varchar not null unique;

  ALTER TABLE user10  ADD test varchar not null first ;  指定位置

  ALter TABLE user10 ADD test3 INT NOT NULL DEFAULT 100 AFTER username ;

选中一个表,完成多次操作

ALTER TABLE  user10

ADD test int not fill default 123 alter passwaord,

add test5 float(6,2) first,

add test6 set('A','B','C');

删除字段:

ALTER table TB_name drop 字段名

选中一个表删除多个字段:

ALTER TABLE  user10

DROP test1

DROP tset2

DROP test3

修改字段

MODIFY:

修改类型:

 ALTER TABLE user10 MODIFY email VARCHAR(200);

 ALTER TABLE user10 MODIFY email VARCHAR(50) NOT NULL DEFAULT '383234';

将card字段移动到test之后

ALTER TABLE user10 MODIFY card CAHR(18) AFTER test;

ALTER TABLE user10 MODIFY test CHAR (32) FIRST;

将test改为test1

  ALTER TABLE user10 MODIFY change test test1 CHAR (32) ;  

也可改变字段类型:

 ALTER TABLE user10 CHANGE test test  INT;

添加和删除默认值

添加默认值:

ALTER TABLE tble_name 字段名称  SET DEFAULT 默认值 

删除默认值:

ALTER TABLE tble_name 字段名称  DROP DEFAULT 默认值 

增加和删除主键

增加主键:

  ALTER TABLE tbl_name ADD [ CONSTRAINT [symbol]] PRIMARY KEY[index_type](字段名称...)

  []表示可省略

 ALTER TABLE test12 ADD PRIMARY KEY(id,card) 

删除主键:

 ALTER TABLE tbl_name DROP PRIMARY KEY;

  无需添加主键名称

主键有自增长时,应该先去掉自增长再删除

使用MODIFY:

 ALTER TABLE test14 MODIFY id INT UNSIGNED;

添加删除唯一性约束

添加唯一:

ALTER TABLE  tbl_name ADD UNIQUE[索引名称] (字段名称)

索引可以是复合索引

删除唯一索引:

ALTER TABLE tbl_name DROP  INDEX 字段名称;

ALTER TABLE tbl_name DROP  KEY 索引名称;

换引擎:

ALTER TABLE user12 ENGINE= 引擎名称;

删除数据表

一次删除一张表:

DROP TABLE  TB_name ;

一次删除多张表;

DROP TABLE IF EXISTS user11,user10,user9;

在登录时打开指定的数据库:

mysql-uroot-p-D maizi(数据表名)

插入记录

指定字段赋值:

INSERT tb_name (字段名称) VALUES | VALUE (值)  字段与值是一一对应的关系

同时插入多条记录:

INSERT tb_name VALUES (值),(值)....

INSERT user VALUES(6,'D','DDD','dddd'),(7,'SSS','SSSS')     

通过SET的形式插入记录中:

INSERT [INTO] user SET id=98,username='test' , password='114514' ;

将查询结果插入表中:

 INSERT 新建表名 SELECT 字段名  FROM 查询的表名



 INSERT 插入表名(字段名) SELECT 字段名 FROM 查询表名;

 要字段数和数据类型匹配

更新和删除记录

更新记录:

UPDATE user SET  age  = 5 ;

UPDATE 数据库名 SET  表名 = 值 ;

UPDATE 数据库名 SET  表名 = 值 ;

WHERE   (条件) (ORDER BY 字段名称)(LIMIT限制条数)

例如   id=3 id.>=6

删除表中的记录:

DELETE FROM   表名 ;

DELETE FROM   表名  where(条件) [ORDER BY 字段名称][LIMIT 限制条数];

不重置自增长需要手动额外重置:

 ALTER TABLE user AUTO_INCRMENT = 值 ;

彻底清空数据表:

TRUNCATE [TABLE] TBL_NAME ;

会重置自增长

查询表达式

查询表达式:

  SELECT * FROM 表名 ;

查询某一表达式:

  SELECT 字段名 FROM 表名

表来自于哪个数据库下

  db_name.tbl_name

  SELECT 字段名称 FROM  db_name.tbl_name;

字段来于哪张表:

  SELECT cms_admin.id,cms_admin.username FROM csm.csm_admin ;

表起别名:

  SELECT * FROM 表名 [AS] 别名;

字段起别名

 SELECT id  AS ‘编号',username AS '用户名' ....

待条件的查询

WHERE 条件:

检测某一编号为1的用户:


 SELECT 字段名 FROM 表名 WHERE 某一字段名=1 ;

 或者是><>=<= !=

检测某一值是否为NULL:

SELECT*FROM 表名 WHERE 该值是否为NULL ;

SELECT*FROM 表名 WHERE age<=>NULL ;检测值是否为NULL

添加字段:

ALTER TABLE 表名 ADD 字段名  数据类型 ;

检测是否为空值:

SELECT * FROM 表名  WHERE 字段名 IS NULL ;

检测是否为非空值:

SELECT * FROM 表名  WHERE 字段名 IS NOT NULL ;

范围条件查询

指定范围:

 SELECT * FROM 表名 WHERE 字段名 BETWEEN AND ;



 SELECT * FROM 表名 WHERE 字段名 NOT BETWEEN AND ;

指定集合(字符串和数字都可以):

SELECT * FROM 表名 WHERE 字段名 IN (集合元素);   包含



SELECT * FROM 表名 WHERE 字段名 NOT IN (集合元素);   不包含

模糊查询

模糊查询:

%:代表0个1个或者多个任意字符

_:代表1个任意字符

SELECT * FROM 表名 WHERE 字段名 LIKE  '字符%' ;

SELECT * FROM 表名 WHERE 字段名 LIKE  '%' ;相当于没有设置条件

查询用户名为3位的用户(使用下划线,一个代表一个字符):

 SELECT * FROM 表名 WHERE 字段名 LIKE  '____' ;

 _i%   开头是一位字符且包含i的记录

分组查询

分组查询:

GROUP BY 关键字

字段名称:

  SELECT * FROM GROUP BY 字段名 ;(可以是多字段)

按照字段的位置:

 SELECT * FROM GROUP BY 字段位置;

分组查询配合聚合函数

聚合函数:

COUNT():

         用于统计表中的所有记录   SELECT COUNT(* |   字段名)   FROM 表名
         COUNT(字段)不统计NULL值
    

       MAX()
       MIN()
       AVG()
       SUM()

GROUP_CONCAT 用于查看详情:

       GROUP_CONCAT(字段名)

WITH ROLLUP:

      用于GROUP BY 之后,查看统计的总结果,结果与使用的聚合函数有关。

HAVING语句:

   用于二次过滤筛选 必须配合分组使用。
   通常在GRUOP BY 之后 通常为 HAVNING 条件 [AND ]    条件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值