1.基本语句
mysql -u root -p --连接数据库
show databases --列出所有数据库
create database xxx --创建一个数据库
use xxx --切换到xxx数据库
show tables --列出当前数据库所有的表
-- 注释
/* (多行注释)
hello
r3ality
*/
数据库xxx语言
- DDL define
- DML manage
- DQL query
- DCL control
DDL
(一)操作数据库
2.1 操作数据库
1.创建数据库
CREATE DATABASE [IF NOT EXISTS] xxx;
2.删除数据库
DROP DATABASE [IF EXISTS] XXX;
3.使用数据库
USE xxx;
mysql数据类型
数字
- tinyint (一个字节)
- smallint (两个字节)
- mediumint (三个字节)
- int (四个字节)
- bigint (八个字节)
- float 浮点数 (四个字节)
- double 浮点数(八个字节)
- decimal 字符串形式的浮点数
字符串
-
char 定长字符串0~255
-
varchar 可变字符串 0~65535
-
tinytext 微型文本 0~2^8-1
-
text 文本 0~2……16-1
日期
java.util.Date
-
datetime YYYY-MM-DD HH:MM:SS 最常用的时间格式
-
timestamp 时间戳,1970.1.1到现在的毫秒数!
数据库的字段属性
unsigned :
- 无符号整数
- 该列不能为负数
zerofill:
int(3), 5:005
自增
- 自动在上一条记录的基础上+1
- 用来设计主键,必须为整数
非空
如果没有赋值,就会报错
默认
- 设置默认的值
- 如果不指定值,就会有默认的值
(二)操作表
创建表
create table student(
id char(5),
name varchar(20),
age int(10)
);
)
查看当前数据库所有表
show tables;
查看表的结构
desc student
删除表
drop table student
修改表
1.添加列:给student表添加sex列
alter table student add (sex varchar(10));
2.修改列类型:修改name列类型为char
alter table student modify name char((10));
3.修改列名:修改age列名为country
alter table student change age country int(10);
4.删除列:删除表的age列
alter table student drop age;
5.修改表名称:修改student表为stu
alter table student rename stu
DML
- insert
- update
- delete
insert
insert into stu values(2,1500,25,'女');
insert into stu (id,salary,age,sex)values(2,1500,25,'女');
update
update stu set salary=2300,age=33,sex='女'where id=1
update stu set sex='男'where sex is null
update stu set age=age+1 where salary=2500
delete
delete from stu where id =1
DQL
基础查询
1.mysql> select * from stu; -- 查询整张表的内容
+----+--------+-----+-----+------+
| id | salary | age | sex | name |
+----+--------+-----+-----+------+
| 1 | 2500 | 20 | 女 | 小王 |
| 2 | 3000 | 30 | 男 | 小李 |
| 3 | 2800 | 28 | 女 | 小红 |
+----+--------+-----+-----+------+
2. mysql> select 'id','age' from stu; -- 只查询id和age两个字段的内容
+----+-----+
| id | age |
+----+-----+
| id | age |
| id | age |
| id | age |
+----+-----+
3.
mysql> select concat('学号:',id) as 新学号 from stu; -- 字段前拼接
+--------+
| 新学号 |
+--------+
| 学号:1 |
| 学号:2 |
| 学号:3 |
+--------+
where子句
逻辑运算符
- and
- or
- not
+----+--------+-----+-----+------+
| id | salary | age | sex | name |
+----+--------+-----+-----+------+
| 1 | 2500 | 20 | 女 | 小王 |
| 2 | 3000 | 30 | 男 | 小李 |
| 3 | 2800 | 28 | 女 | 小红 |
+----+--------+-----+-----+------+
mysql> select salary,age from stu where salary>=2800 and age<=28;
+--------+-----+
| salary | age |
+--------+-----+
| 2800 | 28 |
mysql> select salary,age from stu where salary between 2500 and 2900;
+--------+-----+
| salary | age |
+--------+-----+
| 2500 | 20 |
| 2800 | 28 |
+--------+-----+
mysql> select salary,age from stu where not salary=2500;
+--------+-----+
| salary | age |
+--------+-----+
| 3000 | 30 |
| 2800 | 28 |
模糊查询
比较运算符
is null | 如果操作值为空,布尔值为真 |
---|---|
is not null | 如果操作值不为空,布尔值为真 |
between...and | 如果一个数在另外两个数之间,布尔值为真 |
like | 如果一个数与另一个数匹配,布尔值为真 |
in | 如果一个数在另外一堆数之间,布尔值为真 |