文章目录
前言
学无止境,笔勤不辍。作为此专栏的开篇之作,简单介绍这个专栏,目的是记录笔记,分享心得,然后方便新手入门及复习,笔者将会在这一期间不间断的更新,希望大家多多关注,一起学习和进步!
使用的是MYSQL 之后也会把安装配置程序的教程发布
TIPS:mysql语言关键字不区分大小写
一、数据库的相关操作
创建新的数据库:
使用MySQL的时候为了避免各数据集互相影响,在每一次开始新的项目或
任务的初始,就要重新创建一个database,避免数据相互影响。
整体模板如下:
CREATE [IF NOT EXISTS] define_database_name (方框中的 if not exists 用于判断本次要创建的数据库是否存在,不存在则创建数据库,可避免报错)
[CHARACTER SET charset_name](设置编码格式)
[COLLATE collation_name];(设置排序规则)
(后两者,笔者进行更详细的研究后会继续更新)
数据库的展示:
在工作中,我们会建立很多个数据库,这样就会造成数据库名的遗忘和混淆,此时就可以用数据库展示指令,帮助我们确定要使用的数据库。
SHOW DATABASES;
数据库的选定:
工作学习中,我们可能有多个数据库,但我们要在特定的数据库里进行特定的操作,所以我们要指定数据库:
USE <exist_database_name>;
数据库的删除:
工作中,删除数据库要十分小心(千万不能删库跑路,哈哈)
具体代码如下:
DROP DATABASE [IF EXISTS] <exist_database_name>;
(如果数据库存在则删去)
二、选定数据库,对图表的操作
1.建立表
代码如下:
CREATE TABLE <table_name>
(<column_name1> <types> [<默认值> <标识列设置> <完整性约束>],
<column_name2> <types> [<默认值> <标识列设置> <完整性约束>],
...
<column_name3> <types> [<默认值> <标识列设置> <完整性约束>]);
其中types 数据类型有以下:
1.INT 或INTEGER:全字长整数型
2.SMALLINT:半字长整数型
3.DECIMAL(p[,q])或者DEC(p[,q]),一共p位,小数位数是q位,
0<=q<=p<=15,q=0时,可忽略
4.FLOAT:双字长的浮点数
5.CHAR(n)或CHARTER(n):定长,长度为n的字符串
6.VARCHAR(n):最大长度为n的可变字符串
7.DATETIME:日期时间型,格式可设置
<标识列设置>:IDENTITY(初始值,步长):每增加一行数据,添加独一的、递增的值(在标识列)
<默认值>:DEFAULT ( 常量) 将此列默认设置为该常量
<完整约束性>:
1.NOT NULL :不能为空
2.NULL: 可以为空
3.UNIQUE:该列不能有两个相同的值
查看数据表
show tables;
查看列(属性)信息:
desc 表名称;
2.修改表
代码如下:
ALTER TABLE <表名>
[ADD <列名> <数据类型> [列的完整性约束]|[ADD <表级完整性约束>]
[ALter COLUMN 列名 新的数据类型]
[DROP COLUMN 列名]
[DROP CONSTRAINT 表级完整性约束];
ADD 为表增加一个新列/表级完整性约束,注意,如果增加的是新列,那它必须可为空,或设置了默认值
DROP COLUMN:删除表中原有的列
ALTER COLUMN:修改原有列的数据类型
删除表:
DROP TABLE 表名1[,表名2...];
三、对数据的操作:
增加元组:
INSERT INTO 表名 [属性名1,属性名2...]
VALUES(数据1,数据2...)
若有属性名清单,则属性名和数据要一一对应,数据类型要相同,位置也要一一对应。若没有,则要输入完整的一组数据
tips: 若有属性完整性约束为 NOT NULL,且没有默认值时, 插入数据组中一定要有该属性对应的数据 属性名中一定要有该属性名!
常量中字符串常量,日期常量用单引号括起来
修改数据表的方法:
UPDATE <表名>
SET <列名>=<表达式>[,列名=表达式...]
[WHERE 条件];
指定表名内,符合条件的记录中规定的列名的值更新
若没有WHERE 修改全部
删除记录:
DELETE FROM <表名>
[WHERE <条件>];
指定表中符合条件的记录删去
若没有WHERE 则删去所有记录,只留下表的框架
四、数据查询:
代码如下:
SELECT [DISTINCT] [top n[percent]]<列名1[,列名2,列名3...]>
FROM <表名>
[WHERE <判断条件(不可包含集函数)>]
[GROUP BY <列名>
[HAVING <判断语句(可以包含集函数)>]]
[ORDER BY <列表名 ASE(升序)|DASE(降序)>]
若 代码为:
SELECT *
FROM <表名>;
则返回表的所有内容
[DISTINCT]: 删除表中的重复行,再返回
[top n[percent]] 返回前n个 或 返回前n%个元组
计算:
SELECT age-10
FROM <表名>;
别名:
SELECT 表达式 AS 列别名
FROM <表名>;
集函数:
| 函数 | 功能|
|COUNT([DISTINCT/ALL)<列名>[*]|记录某列/元组的个数|
|MAX(<列名>)|返回某列最大值|
|MIN(<列名>)|返回某列最小值|
|SUM([DISTINCT|ALL)<列名>|返回某列值总和(数值型)|
|AVG([DISTINCT|ALL)<列名>|返回某列值平均(数值型)|
运算符
| 运算符 | 功能|
|=,>,<,<=,>=,<>(不等于),!=|基础操作|
|IN NOT IN|属性值是否在一组值中|
|BETWEEN AND NOT BETWEEN AND|属性值在某一范围,左闭右闭|
|IS NULL IS NOT NULL|检查属性值是否为空|
|LIKE NOT LIKE|字符串匹配|
tips:
在 WHERE (列名)LIKE ''
''中 %表示多个字符 _表示单个字符 ‘李%’表示以李开头等等
总结
以上就是今天要讲的内容,未完待续…