文章目录
前言
1、
SQL
语句不区分大小写。
MySQL整数类型
序号 | 数据类型 | 数据范围 |
---|---|---|
1 | TINYINT | -128~127 |
2 | SMALLINT | -32768~32767 |
3 | MEDIUMINT | -2^23~2^23-1 |
4 | INT | -2^31~2^31-1 |
5 | BIGINT | -2^63~2^63-1 |
MySQL字符串类型
序号 | 数据类型 | 数据范围 | 用途 |
---|---|---|---|
1 | CHAR(n) | 0~255字节 | 定长字符串 |
2 | VARCHAR(n) | 0~65535字节 | 长字符串 |
3 | TEXT | 0~65535字节 | 长文本数据 |
4 | LONGTEXT | 0~2^32-1字节 | 极大文本数据 |
5 | BLOB | 0~65535字节 | 二进制长文本数据 |
6 | LONGBLOB | 0~2^32-1字节 | 二进制极大文本数据 |
MySQL小数类型
序号 数据类型 数据用法 数据范围 1 Float Float(m,n) 7位有效数 2 Double Double(m,n) 15位有效数 3 Decimal Decimal(m,n) 28位有效数
m
表示浮点数的总长度,n
表示小数点后有效位数。
MySQL时间类型
序号 | 数据类型 | 格式 | 用途 |
---|---|---|---|
1 | DATE | YYYY-MM-DD | 日期 |
2 | TIME | HH:MM:SS | 时间 |
3 | YEAR | YYYY | 年份 |
4 | DATETIME | YYYY-MM-DD HH:MM:SS | 日期和时间 |
5 | TIMESTAMP | 10位或13位整数(秒数) | 时间戮 |
常用的基本SQL语句
序号 | SQL语句 | 用途 | 描述 | 序号 | SQL语句 | 用途 | 描述 |
---|---|---|---|---|---|---|---|
1 | mysql -u root -p |
连接MySQL |
在命令行窗口中输入mysql -u root -p 命令,回车,然后输入MySQL 密码(不要忘记了密码,找回麻烦),再回车就连接上MySQL 了。最初都是使用root 用户登录,工作中不能一直使用root 用户登录。因为root 权限太大,风险很大,所以等创建好权限适合的用户后,就不要经常登录root 用户了。 |
2 | create database test_db; |
创建数据库 | --- |
3 | show databases; |
查看所有数据库 | --- | 4 | create database MyDB_two character set utf8; |
创建数据库时设置字符编码 | character set 可以缩写成charset 。 |
5 | show create database MyDB_two; |
查看数据库的编码方式 | --- | 6 | alter database MyDB_one character set utf8; |
修改数据库编码 | --- |
7 | use MyDB_one |
进入或切换数据库 | 使用use [数据库名] 进入或切换数据库。刚连接上MySQL 时,没有处于任何一个数据库中,如果要使用某一个数据库,就需要进入到这个数据库中。use [数据库名] 这个命令后面的分号可以省略,这是SQL 语句中唯一可以省略分号的语句。 |
8 | select database(); |
显示当前数据库 | 进入数据库中,可以使用select database(); 来查看当前处于哪个数据库中。长时间操作数据库时,在很多数据库中来回切换后,查看当前的数据库,避免操作错了数据库。 |
9 | show tables; |
查看当前数据库中的表 | --- | 10 | create table phone_table(pid INT, name CHAR(20), price INT); |
创建表 | --- |
11 | show create table phone_table; |
显示表信息 | 使用show create table [表名]; 可以显示表的字段、 MySQL 的引擎和默认的字符编码等信息。与显示数据库信息一样,show 只能显示已经创建的数据表的信息,不能在创建的同时显示信息。 |
12 | desc phone_table; |
更直观的显示表信息 | --- |
13 | alter table phone_table add color CHAR(20); |
增加表字段 | --- | 14 | alter table phone_table drop price; |
删除表字段 | --- |
15 | alter table phone_table modify name VARCHAR(12); |
修改表字段的数据类型 | --- | 16 | alter table phone_table change name pname CHAR(18); |
修改表字段的数据类型和字段名称 | --- |
17 | drop table phone_table; |
删除表 | --- | 18 | --- |
--- | --- |
详细内容
数据库的概念
1、结构化查询语言(
Structured Query Language
)简称SQL
;
2、数据库管理系统(Database Management System
)简称DBMS
;
3、数据库管理员(Database Administration
)简称DBA
,功能是确保DBMS
的正常高效运行。
SQL常用的3个部分
1、数据查询语言(
DQL
): 其语句也称"数据库检索语句",用以从表中获得数据,保留字SELECT
经常使用,DQL
也是所有SQL
中用的最多的,其他保留字还有WHERE
,ORDER BY
,GROUP BY
和HAVING
这些保留字还与DML
一起使;
2、数据操作语言(DML
): 其余局包括动词INSERT
,UPDATE
和DELETE
。他们分别用于添加,修改和删除表中的行。也称动作语言;
3、数据定义语言(DDL
):DDL
主要用于操作数据库。
SQL与JAVA的数据类型对比
MySQL | Java |
---|---|
INT |
int |
BIGINT |
long |
DECIMAL |
BigDecimal |
DATE/DATETIME |
java.util.Date |
VARCHAR |
String |
链接数据库
javamysql -u root -p
root
是用户名。语句末尾不能加分号,否则报错,这是MySQL
唯一加分号报错的SQL
语句。
查看数据库列表
java
show databases;
创建数据库
java
create database 数据库名称;
删除数据库
java
drop database 数据库名称;
创建数据时设置编码
javacreate database 数据库名称 character set utf8;
character set
可以缩写成charset
。
修改数据库编码
java
alter database 数据库名称 character set utf8;
进入或切换数据库
javause 数据库名称
使用
use 数据库名称
进入或切换数据库。
刚连接上MySQL
时,没有处于任何一个数据库中,如果要使用某一个数据库,就需要进入到这个数据库中。
use 数据库名
这个命令后面的分号可以省略,这是SQL
语句中唯一可以省略分号的语句。
显示当前数据库信息
javaselect database();
进入数据库中,可以使用
select database();
来查看当前处于哪个数据库。长时间操作数据库时,在很多数据库中来回切换后,查看当前的数据库,避免操作错了数据库。
查看当前数据库的所有表
java
show tables;
创建表之前检查是否已存在,如果存在就移除
javadrop table if exists '表名称';
注意表名称需要用引号括起来。
创建非约束表
javacreate table 表名称(id INT, name CHAR(20), price INT);
创建一张带有三个字段的表。
id
字段的类型为INT
;
name
字段的类型为CHAR(20)
;
pric
字段的类型为INT
。
创建带约束的表
javacreate table 表名称(id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25) UNIQUE, email VARCHAR(25) NOT NULL, age INT DEFAULT 17);
表的约束
1、非空约束:NOT NULL
,不允许某列的内容为空;
2、设置列的默认值:DEFAULT
;
3、唯一约束:UNIQUE
,该表中,该列的内容必须唯一;
4、主键约束:PRIMARY KEY
,非空且唯一;
5、主键自增长:AUTO_INCREMENT
,从1
开始,步长为1
;
6、外键约束:FOREIGN KEY
,A
表中的外键列。A
表中的外键列的值必须参照于B
表中的某一列(B
表主键)。
显示表信息
java
show create table 表名称;
更直观的显示表信息
java
desc 表名称;
增加表字段
java
alter table 表名称 add color CHAR(20);
修改表字段的数据类型
java
alter table 表名称 modify name VARCHAR(12);
修改表字段的数据类型和字段名称
java
alter table 表名称 change name pname CHAR(18);
设置表所有字段值
javainsert into 表名称(name, email, age) value ('东方不败', "xiao@qq.com", 16);
第一次设置表字段值的时,除了主键字段外,所以默认值为空的字段都需要设置值,否则报错。
修改表字段值
java
update 表名称 set name="独孤求败" where name="张三";
查询表字段值
java
select 字段1, 字段2, 字段3 from 表名称;
去除重复字段
java
select distinct 字段名称 from 表名称;
删除表字段
java
alter table 表名称 drop 字段名称;
删除表
java
drop table 表名称;