SQL语言(MySQL/Oracle/SQL Server/PostgreSQL)
了解SQL数据库
安装 MySQL
首先更新本地存储库索引,执行
sudo apt update
从APT存储库安装MySQL,执行
sudo apt install mysql-server
,在安装过程中,可能会出现[Y / n]问题,输入Y继续安装完成后可以输入
mysql --version
查看版本安装后,MySQL服务器应自动启动。 要检查它是否正在运行,执行
systemctl status mysql.service
如果由于某些原因MySQL服务器未运行,执行以下命令以启动MySQL服务器:
sudo systemctl start mysql
安装XXXX
安装XXXX
安装XXXX
设置root
Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码
1 | [root@host]# mysqladmin -u root password "new_password"; |
登录
1 | root@host# mysql -u root -p |
创建一个hr数据库
1 | mysql> create database hr; |
使用hr数据库
1 | mysql> use hr; |
接着粘贴以下语句:
1 | -- 创建部门表 |
select字段
最简单的: select * from 表名;
注意基本概念,数据库中,横着的是记录,竖着是字段。
select * from employees;
MySQL的基本语法
数据库管理
创建数据库
语法:create {database | schema} [if not exists] 数据库名字
例如:
1 | create database afu; |
show warnings;
可以常看警告信息
再来创建一个数据库,名字为“daokun”,并且指定字符集为“utf-8”
1 | create database daokun default character set utf8; |
选择数据库
语法:use 数据库名;
例如选择之前创建的afu数据库:use afu;
执行查询命令show tables;
查看当前库有哪些表,因为afu库还没有创建任何表,所以返回空。
查看数据库
查看有哪些库语法:show databases
;
查看有哪些表:show 数据库名;
查看创建方法,字符集等:show create database 数据库名;
修改数据库
如果创建库的时候,忘记了指定字符集,可以使用alter
alter database afu default character set utf8;
删除数据库
这个数据库里面的所有内容都会被删除,包括表结构和数据。
语法:drop database 数据库名;
字段类型
MySQL支持多种数据类型,分为三类:数值,日期/时间,字符串。
整数类型分为:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT;浮点类型:FLOAT,DOUBLE。定点数类型:DECIMAL。
日期/时间类型包括:DATA,TIME,DATATIME,TIMESTAMP,YEAR;
字符串类型包括:CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM,SET。二进制字符串类型:BINARY,VARBINARY。
数值类型
可以用在数据类型后面添加UNSIGNED来标识是否未无符号,例如**:INT** UNSIGNED表示无符号的4字节长度的整数。
无符号和有符号的范围是不一样的。
有符号的整数类型的取值范围和占用字节
类型 | 取值范围 | 占用字节 |
---|---|---|
TINYINT | -128~127 | 1 |
SMALLINT | -32768~32767 | 2 |
MEDIUMINT | -8388608~8388607 | 3 |
INT | -2147483648~2147483647 | 4 |
BIGINT | -9223372036854775808~9223372036854775807 | 8 |
MySQL可以指定定点数和浮点数的精度。数据类型(M,D),M是精度,是数据的总长度;D是标度,是小数点后面的长度。
例如,float(6,2)的含义为:数据类型是float,数据长度是6,小数点保留后面两位。如果插入值的精度高于实际定义的精度,系统会进行四舍五入。
字符串类型
字符串主要由CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM,SET。
CHAR和VARCHAR类似,但在保存和检索方式有所区别,最大长度和尾部空格是否保留等方面不同。(保存和检索方式都不进行大小写转换)。
BINARY和VARBINARY类似,存储的是二进制字符串,而不是字符型字符串。它们没有字符集,并且排序和比较基于列值字节的数值。
TEXT有四种类型:TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT。
ENUM是枚举类型。
SET是集合类型,不同于ENUM,它是一个排列组合,假如有abc,它可以选择a或者b或者c,也可以选择ab,ac,bc,还可以选择abc。
时间类型
- YEAR类型
三种赋值方法:
第一种是直接插入4位数字或者字符串。例如2023.
第二种是插入两位字符串,插入‘00’‘69’相当于是20002069;插入’70’‘99’相当于是19701999。‘0’相当于2000。
第三种是插入两位数字,基本上和第二种相同。但是0不代表2000,而是0000.
- TIME类型
time类型表示为:”时:分:秒”,标准格式是“HH:MM:SS”,但不一定非要用这种格式。
如果插入的是”D HH:MM:SS”,例如,“2 23:50:30”———–>2*24+23 : 50 : 30
如果插入是”30” ——->”00:00:30”
如果插入是”11:25”———>”11:25:00”