### 安装部署LInux虚拟机
LInux登录MySQL
修改mysql默认数据的字符集
-- 修改mysql中数据库默认字符集
-- 1)修改配置文件
$ vim /etc/my.cnf
[client]
default-character-set=utf8
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
2)重启MySQL服务
$ systemctl restart mysqld
3) 查看Java进程
$ jps
4) 登录数据库
$ mysql -uroot -p
5) 查询MySQL数据库编码
show variables like 'char%';
SSH远程连接MySQL
SQL
SQL语法分类
- DDL 数据定义语言
- DML 数据操纵语言
- DQL 数据查询语言
- DCL 数据控制语言
SQL通用语法
- SQL以分号 ; 结尾
- SQL不分大小写 (表名,库名,字段名均识别,但不建议交叉使用,既库名表名字段名大写则大写,小写则小写)
- SQL可以单行也可以多行书写
- 单行注释 # 或 -- + 空格
- 多行注释
/*
···
*/
DDL之数据库操作
create database [if not exists] 库名 [charater set utf8];
use 数据库名;
select database();
show databases;
drop database 数据库名;
alter database 库名 修改内容
DDL 之数据表操作
create table [if not exists] 表名 (
字段1 类型 [约束] comment '' ,
字段2 类型 [约束] comment '',
字段3 类型 [约束] comment '',
字段4 类型 [约束] comment ''
);
show tables;
desc 表名;
show create table 表名;
create table 复制表 like 原表;
drop table 表名;
- add 添加字段
- change/modify 修改字段
- drop 删除字段
- rename to 重命名
alter table 表名 add 字段名 类型 大小 [约束 注释];
alter table 表名 drop 字段名;
alter table 表名 change 旧字段 新字段 类型 大小 [约束 注释];
alter table 表名 modify 字段名 类型 大小 [约束 注释];
rename table 旧表名 to 新表名;
rename table 旧表名 TO 新表名;
DML数据操纵语言
- insert
- update
- delete/truncate
insert into 表名(列名1, 列名2, ...) value (值1, 值2, ...)
insert into table 表名 values(),()···();
insert into .... select...
update 表名 set 字段1=值1,字段2=值2,···,字段n=值n where 字段=值;
delete from 表名 where 条件;
truncate table 表名;
delete from 表名;
truncate table 表名;
约束
主键约束
create table if not exists persons2 (
id int primary key,
lastName varchar(25),
firstName varchar(25),
address varchar(25),
city varchar(25)
);
create table if not exists persons1 (
id int,
lastName varchar(25),
firstName varchar(25),
address varchar(25),
city varchar(25),
constraint 主键标签 primary key(字段1,字段2)
);
alter table 表名 drop primary key;
自增约束
- 特点:自增列不插入数据值或插入null值,会自动维护值,以表中最大的值进行递增
- 如果插入实际值,以插入值为准
- 一般都是跟着主键约束后边, 自增列的数据类型是整数类型
create table if not exists persons6 (
id int primary key auto_increment,
lastName varchar(25),
firstName varchar(25),
address varchar(25),
city varchar(25)
);
alter table 表名 change 旧字段 新字段 类型 大小;
非空约束
- 特点:该字段不为空,不能插入null值,或者是不能不插入值(默认插入null值)
- 可以插入空字符串’ ’
create table if not exists persons4 (
id int not null,
lastName varchar(25) not null,
firstName varchar(25),
address varchar(25),
city varchar(25)
);
alter table 表名 change 旧字段 新字段 类型 大小;
唯一约束
- 特点:数据值不能重复
- 主键约束自带唯一约束, 但表中只能有一个主键约束,却可以设置多个唯一约束
- 不能约束null值,可以有多个null值
CREATE TABLE person4
(
id INT PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(20) UNIQUE ,
first_name VARCHAR(20) UNIQUE ,
address VARCHAR(255)
);
默认值约束
- 特点:当不插入数据值时,是以默认值进行插入; 如果插入数据值时,就以实际值进行插入
- 无法约束null值,可以插入null值
CREATE TABLE person5
(
id INT PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(20),
first_name VARCHAR(20),
address VARCHAR(255) DEFAULT '昌平'
);
外键约束
- 特点:从表外键的值是对主表主键的引用
- 从表外键类型,必须与主表主键类型一致
- 插入数据时,保证了数据的准确性
- 删除数据时,保证了数据的完整性
CONSTRAINT FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名)
CREATE TABLE category
(
cid VARCHAR(32) PRIMARY KEY,
cname VARCHAR(100)
);
CREATE TABLE products
(
pid VARCHAR(32) PRIMARY KEY,
pname VARCHAR(40),
price DOUBLE,
category_id VARCHAR(32),
CONSTRAINT FOREIGN KEY (category_id) REFERENCES category (cid)
);