MySQL基础(1)

### 安装部署LInux虚拟机

  • 安装VMware
  • 安装虚拟机
  • 网络配置
    • Linux虚拟机
    • VMware
    • Windows

LInux登录MySQL

修改mysql默认数据的字符集

-- 修改mysql中数据库默认字符集
-- 1)修改配置文件
$ vim /etc/my.cnf

# 按 i 进入插入模式

# 在[mysqld]上面添加
[client]  
default-character-set=utf8

# 在[mysqld]下面添加一行:
default-storage-engine=INNODB  
character-set-server=utf8 
collation-server=utf8_general_ci

# 按ESC退出插入模式
# 输入 :wq /shift + zz(保存退出)

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 表名;

-- 修改表
# 语法: alter table 表名 关键字 列名 类型 约束
# 关键字:
- add  添加字段
- change/modify  修改字段
- drop  删除字段
- rename to  重命名

-- 增加一列
alter table 表名 add 字段名 类型 大小 [约束 注释];

-- 删除一列
alter table 表名 drop 字段名;

-- 修改表,修改字段,类型,大小
-- 注意: 不是什么字段都能更改,比如varchar 改float报错,因为我们原表中已经存在数据,字符串类型无法更改为数字类型
alter table 表名 change 旧字段 新字段 类型 大小 [约束 注释];
-- modify 修改字段的类型约束
alter table 表名 modify 字段名 类型 大小 [约束 注释];

-- 修改表名
rename table 旧表名 to 新表名;
rename table 旧表名 TO 新表名;
DML数据操纵语言
  • insert
  • update
  • delete/truncate
-- 插入数据 可以是value或values
# 向指定字段中插入数据
insert into 表名(列名1, 列名2, ...) value (1,2, ...)

# 向所有字段中插入数据
insert into table 表名 values(),()···();

# 将查询的数据插入另一张表
insert into .... select... 

-- 更新表操作
# 如果没有where语句,是对表中cname列中的所有行值进行更新
update 表名 set 字段1=1,字段2=2,···,字段n=值n where 字段=;

-- 删除指定数据
delete from 表名 where 条件;

-- 删除所有数据
truncate table 表名;

-- 主键自增序列不清零, 从之前最大的序列值继续递增
delete from 表名;
-- 主键自增序列清零, 又从1开始递增
truncate table 表名;
约束
主键约束
  • 特点:非空且唯一
  • 建议每一张表都配一个主键
-- 定义主键有2种方式
-- 指定单个主键
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),
    # category_id 从表外键字段
    # category (cid) 主表名 (主键字段)
    CONSTRAINT FOREIGN KEY (category_id) REFERENCES category (cid) # 添加外键约束
);
-- 从表插入数据前必须确保主表有这个主键
-- 删除主表数据时要确保从表相关联的数据都已删除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值