Mysql从学会基础到学会放弃

2019-11-14  本文已影响0人  小马哥是没有感情的

一、MySQL新增字段

1.单个字段
ALTER TABLE people ADD COLUMN name VARCHAR(100) DEFAULT NULL COMMENT '姓名'
2. 批量增加字段
方法一
可以使用事务

语法:

begin;                                           //事务开始
alter table 表名  add 字段名  字段类型(长度);
alter table 表名 add 字段名  字段类型(长度);
alter table 表名 add 字段名  字段类型(长度);
alter table 表名 add 字段名  字段类型(长度);
commit;    

方法二

alter table 表名 add (字段1 类型(长度),字段2 类型(长度),字段3 类型(长度));

alter table em_day_data add (f_day_house11 int(11),f_day_house12 int(11),f_day_house13 int(11));

MySQL修改字段

1. 修改字段长度
语法:
ALTER TABLE 表名 MODIFY COLUMN 字段名  数据类型(修改后的长度)
ALTER TABLE attence MODIFY COLUMN id INT(20)
2.修改字段的名称
alter table <表名> change <字段名> <字段新名称> <字段的类型>。
ALTER TABLE attence CHANGE attence_name attence_newname VARCHAR(20)

MySQL删除表中的一个字段

先看看删除之前的表结构:

mysql> select * from test;
+------+--------+----------------------------------+------------+------------+------------+------------+
| t_id | t_name | t_password                       | t_birth    | birth      | birth1     | birth2     |
+------+--------+----------------------------------+------------+------------+------------+------------+
|    1 | name1  | 12345678901234567890123456789012 | NULL       | 1990-01-01 | 0000-00-00 | 2013-01-01 |
|    2 | name2  | 12345678901234567890123456789012 | 2013-01-01 | NULL       | 0000-00-00 | 2013-01-01 |
+------+--------+----------------------------------+------------+------------+------------+------------+
2 rows in set (0.00 sec)

执行删除命令,使用drop关键字。
基本的语法为:alter table <表名> drop column <字段名>;

具体的命令如下:

mysql> alter table test drop column birth1;
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0

MySQL 清空表(truncate)与删除表中数据(delete) 详解

删除表信息的方式有两种 :
1. truncate table table_name;
2. delete * from table_name;
注 : truncate操作中的table可以省略,delete操作中的*可以省略

truncate、delete 清空表数据的区别 :
1> truncate 是整体删除 (速度较快),delete是逐条删除 (速度较慢)
2> truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete高的原因
3> truncate 不激活trigger (触发器),但是会重置Identity (标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的 ID数。而 delete 删除以后,identity 依旧是接着被删除的最近的那一条记录ID加1后进行记录。如果只需删除表中的部分记录,只能使用 DELETE语句配合 where条件

MySQL 数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值日期/时间字符串(字符)类型。

1. 数值类型

常用:

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度、浮点数值
DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度、浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

2. 日期和时间类型

常用:

类型 大小(字节) 范围) 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值

3. 字符串类型

常用:

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TEXT 0-65 535字节 长文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据

char、varchar、text使用笔记:

  1. 经常变化的字段用 varchar
  2. 知道固定长度的用 char
  3. 尽量用 varchar
  4. 超过 255 字符的只能用 varchar 或者 text
  5. 能用 varchar 的地方不用 text

MySQL数据处理

C 插入数据:

单行数据:
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

多行数据:
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN ),
                       ( value1, value2,...valueN ),
                       ( value1, value2,...valueN );
创建数据表:
CREATE TABLE table_name (column_name column_type);

U 更新数据:

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

R 查询数据

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....

1. Like 子句
LIKE 子句中使用百分号 % 字符来表示任意字符,类似于UNIX或正则表达式中的星号 *
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的

SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM';

D 删除数据:

DELETE FROM table_name [WHERE Clause]

MySQL UNION 操作符

操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

MySQL 排序

1. 升序排列(默认):
SELECT * from runoob_tbl ORDER BY submission_date ASC;

2. 降序排列:
SELECT * from runoob_tbl ORDER BY submission_date DESC;

MySQL 分组

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

使用 WITH ROLLUP
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。

MySQL创建数据库指定编码

CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;
上一篇 下一篇

猜你喜欢

热点阅读