mysql基础知识点一
安装MYSQL,我们就直接安装,不使用修改my.ini文件那种方式
然后安装SQLyog,SQLyog不能直接安装在系统盘上,要不然删除的时候可能会把系统盘删除掉,要安装旗舰版,网盘里面有
DDL:数据库的增删改
DML:数据库的表的增删改
DQL:查询数据库数据
MySQL注释:
1、#…… 单行注释
2、/*……*/ 多行注释
DBMS与DB的关系:
DBMS(数据库管理系统)与DB(数据库)
就像是那个SQLyog和MYSQL的关系
如果没有SQLyog我们只能在终端输入命令
命令行操作数据库:
大小写都行
创建数据库:
CREATE DATABASE [IF NOT EXISTS] 数据库名;
删除数据库:
DROP DATABASE [IF EXISTS] 数据库名;
查看数据库:
SHOW DATABASES;
使用/选择数据库:
USE 数据库名;
例子:
USE myschool;
是一个 SQL 语句,用于选择或切换到一个名为 myschool
的数据库。
先使用 USE myschool;
选择了 myschool
数据库,然后执行了一个查询
USE myschool;
SELECT * FROM students;
显示表:
desc 表名
建表:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
显示表创建语句:
show create table 表名
创建数据表:
属于DDL
反引号用于区别MySQL保留字与普通字符而引入的,不用写单引号
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
)
例子:
CREATE TABLE meng (
name VARCHAR(255), -- 指定 VARCHAR 的长度
id INT -- 整数类型
);
列类型:
规定数据库中该列存放的数据类型
分为:
- 数值类型
- 字符串类型
- 日期和时间型数值类型
- NULL值
数值类型:
字符串类型:
日期和时间型数值类型:
NULL值:
- 理解为"没有值"或"未知值"
- 不要用NULL进行算术运算,结果仍为NULL;
数据字段属性:
表列类型设置:就是这里面的属性
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
UNSIGNED
- 无符号的
- 声明该数据列不允许负数
ZEROFILL
- 0填充的
- 不足位数的用0来填充,如 int(3),5则为 005
AUTO_INCREMENT
- 自动增长的,每添加一条数据,自动在上一个记录数上加1
- 通常用于设置主键,且为整数类型
- 可定义起始值和步长
NULL 和 NOT NULL
- 默认为NULL,即没有插入该列的数值
- 如果设置为NOT NULL,则该列必须有值
DEFAULT
- 默认的
- 用于设置默认值
例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
表列类型注释:
就是这个注释
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘编码号’
)COMMENT=‘测试表’;
创建表时:
在最后一个字段 后面不可以有逗号。
表列类型设置:
就是这个加粗的地方
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
设置类型:
CREATE TABLE 表名(
#省略一些代码
) ENGINE = MyISAM ;
或者
CREATE TABLE 表名(
#省略一些代码
) ENGINE = InnoDB ;
MySQL的数据表的类型:MyISAM、InnoDB 、HEAP、BOB、CSV等
MyISAM与InnoDB类型比较:
使用MyISAM: 节约空间及相应速度使用
InnoDB: 安全性,事务处理及多用户操作数据表
设置数据表字符集:
就是加粗的这里,就是为数据库、数据表、数据列设定不同的字符集
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
设置格式:
创建时通过命令来设置,如
CREATE TABLE 表名(
#省略一些代码
)CHARSET = utf8;
如无设定,则根据MySQL数据库配置文件my.ini(Windows系统)中的参数设定 如:character-set-sever = utf8
表索引:
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
数据表的存储位置:
MySQL数据表以文件方式存放在磁盘中
- 包括表文件、数据文件以及数据库的选项文件
- 位置:MySQL安装目录\data下存放数据表。目录名对应数据库名,该目录下文件名对应数据表
InnoDB类型数据表只有一个*.frm文件,数据文件为上一级目录的 ibdata1 文件
MyISAM类型数据表对应三个文件:
*.frm -- 表结构定义文件
*.MYD -- 数据文件
*.MYI -- 索引文件
修改数据表:
设置主键和自动增长:
CREATE TABLE goods (
goods_id BIGINT(20) NOT NULL AUTO_INCREMENT,
-- 其他列定义...
PRIMARY KEY (goods_id)
);
设置默认值:
CREATE TABLE goods(
goodsID BIGINT(20) NOT NULL AUTO_INCREMENT,
goodsTime DATETIME NOT NULL DEFAULT '0000-00-00'
PRIMARY KEY(goodsID)
);
设置长度 和 小数点后保留两位:
要创建一个名为price的列,数据类型为DECIMAL,长度为10,小数点后保留2位,并且默认值为0.0
CREATE TABLE goods (
-- 其他列定义...
price DECIMAL(10, 2) NOT NULL DEFAULT 0.0
);
修改表(ALTER TABLE):
修改表名:
ALTER TABLE 旧表名 RENAME AS 新表名
添加字段:
ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]
修改字段:
MODIFY 只能修改字段的数据类型或属性,不能修改字段名称。
ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]
CHANGE 可以同时修改字段的名称和数据类型或属性。
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]
删除字段:
ALTER TABLE 表名 DROP 字段名
删除数据表:
如删除不存在的数据表会抛出错误
DROP TABLE [ IF EXISTS ] 表名
原文地址:https://blog.csdn.net/qq_62859013/article/details/143001199
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!