MySQL基础

这里写自定义目录标题

关系型数据库的概念
行(元组/记录,一组相关的数据)+列(数据元素,相同类型的数据)->表单(数据的矩阵)->数据库
表头(每一列的名称),值(每行的具体信息),键(key,在其所在列具有唯一性)
主键,外键,复合键,索引,
SQL语句
创建数据库:create database 数据库名;

查看数据库:show create database 数据库名(查看某数据库定义的信息) show databases(查看服务器中所有数据库)

删除数据库:drop database 数据库名;

选择数据库:use database 数据库名;

创建数据表:CREATE TABLE table_name(column_name column_type)

删除数据表:DROP TABLE table_name

插入数据:

INSERT INTO table_name
(field1,field2,……,fieldN)
VALUES
(value1,value2,……,valueN)
当value为字符型或日期,则为"value"

删除数据表中记录:DELETE FROM table_name [WHERE Clause] 删除一行

修改数据表:

  1. ALTER TABLE table_name DROP i 删除i字段
  2. ALTER TABLE table_name ADD i 添加i字段
  3. ALTER TABLE table_name MODIFY 类型(长度) 修改字段类型长度
  4. ALTER TABLE table_name CHANGE i j 类型 i:要修改的字段名 j:新字段名
  5. ALTER TABLE table_name RENAME TO new_table_name i 修改表名
    读取数据表中数据:slect * from 表格名;

查询数据:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N] [OFFSET M]
SELECT column_name,column_name表示可查询多条记录,使用逗号分隔; FROM table_name 可使用一个或多个表,逗号分隔; 用*代替其他字段,返回表的所有字段数据; 使用WHERE语句包含任何条件; 使用LIMIT属性设定返回的记录数; OFFSET指定开始查询的数据偏移量,默认为0.

WHERE子句:

SELECT field1, field2,…fieldN FROM table_name1, table_name2…
[WHERE condition1 [AND [OR]] condition2…
操作符:=, !=, >, <,>=,<=,<>

聚合函数:只可出现在select或者having语句中,不可出现在where语句中

sum()
avg()
max()
min()
count() 返回匹配指定条件的行数,count(*)返回表中的记录数
ORDER BY语句:SELECT field1,field2,……,fieldN FROM table_name ORDER BY field1[ASC[DESC]],field2[ASC[DESC]]

GROUP BY语句:

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
e.g. select cid,count(*) from product group by cid;

HAVING语句:

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING function(column_name)条件;
e.g. select cid,avg(price) from product group by cid having avg(price)>60;
IN语句:

WHERE table_name IN(’’,’’);
注意:IN和=均在WHERE中作为等于的意思,IN可以规定多个值,=只能规定一个。

单表约束:主键约束:primary key, 唯一约束:unique,非空约束:not null. 主键约束=唯一约束+非空约束

MySQL 查询语 法 顺序

SELECT
FROM
LEFT JOIN
ON
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT
索引
优化查询速度,包含对数据表里所有记录的引用指针
索引分类:
单列索引

- 普通索引:没限制
- 唯一索引:索引列中的值必须唯一,允许为空
- 主键索引:索引列中的值必须唯一,不允许为空

组合索引:在表中多个字段组合上创建的索引,只有使用了其左边字段,索引才被引用,遵循最左前缀集合
全文索引
空间索引
普通索引
创建索引:CREATE INDEX indexname ON mytable(username(length));

添加索引:ALTER table tablename ADD INDEX indexname(columnName)

创建表的时候同时创建索引:

CREATE TABLE mytable(

ID INT NOT NULL,

username VARCHAR(16) NOT NULL,

INDEX [indexName] (username(length))

);

删除索引:DROP INDEX [indexname] ON mytable

唯一索引:前三种情况均在indexname前加上UNIQUE
显示索引信息:SHOW INDEX FROM table_name; \G \G:来格式化输出信息
非聚集与聚集索引
非聚集索引:叶子节点只存储数据行的指针,即数据和索引不在一起。主键索引和辅助索引都会存储指针的值。
聚集索引:主键索引的叶子节点会存储数据行,即数据和索引在一起。辅助索引只会存储主键值。
数据类型
decimal(a,b) a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。

注:DECIMAL数据类型用于要求非常高的精确度的计算中,这些类型允许指定数值的精确度和计数方法作为选择参数。精确度在这里是指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的个数。

char&varchar
CHAR是用来保存定长字符,存储空间的大小为字段定义的长度,与实际字符长度无关,当输入的字符小于定义长度时最后会补上空格。VARCHAR是用来保留变长字符,在数据库中存储空间的大小是实际的字符长度,不会像CHAR一样补上空格,这样占用的空间更少。
char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值