MySQL数据库创建以及基本的方法(8.0.22版本)

MySQL数据库创建以及基本的方法(8.0.22版本)

创建数据库

CREATE DATABASE school_db

CREATE DATABASE IF NOT EXISTS school_db

ALTER DATABASE school_db CHARSET utf8;设置编码方式

DROP DATABASE school_db;删除数据库

在MySQL中,创建的数据库不可改名

后缀名_db表示数据库的简称

数据库结构语言,sql语言,就是一种结构化查询语言,增删改查
是一种脚本语言,不需要编译,直接通过某种解释器解释执行
也就是说,通过命令直接执行SELECT FROM USER;
*/

#DDL数据定义语言,创建数据库,表

CREATE DATABASE school_db;
– create,创建数据库,db是后缀名,表示的是数据库
#如果不存在,IF NOT exits,新建一个数据库
CREATE DATABASE IF NOT exits schoole_db;
– charset utf8,编码方式
CREATE DATABASE IF NOT exits school_db CHARSET utf8;
#DROP database school_db; DROP删除数据库
– MySQL数据库中,不能修改数据库的名字
ALTER DATABASE school_db CHARSET utf8;
#ALTER 修改数据库的字符集

数据库中的表

创建数据库——创建各种数据库表

表由列组成,一列一列的,称之为字段,每一列类似于Java中的属性

表中的数据是按行存储的,每一行类似于Java中的对象(存储对象的各种信息)

数据库表——数据库基本存储单位

记录——一行信息,一行数据

字段——存储那个种类的信息

所有的关键字都是大写的

设计数据库表

必须明确一个数据库表存储一类信息,比如说,新建了一个学校的数据库,设计的数据库表,学生信息表,教师基本信息表,教师绩效表…

1 表名:学生信息表(存储学生基本信息)

2 具体信息:表中字段 name ,age 等精确,具体的信息

3 数据类型长度

4 约束(添加数据的限制)

设计表(数据类型)

字符:(关键字char,varchar大写,系统默认)

char(n)长度为n的字符(注:不是Java中的单个字符),定长为4,即使存储了一个字符也占据4个长度,即长度固定不可改变

varchar(n)长度可变的字符,当长度设置为n的时候,最大可存储n个字符,存储了1个字符长度就变为1

日期:

date 日期 年月日

DATETIME 时间 年月日时分秒

整数:

TINYINT 1个字节 -128——127

SMALLINT 2个字节 -32768 ——32767

MEDIUMINT 3个字节 -8388608 ——8388607

INT 4个字节 -21亿——21亿

BIGINT 8个字节 -9223372036854775808 ——9223372036854775807

浮点:

FLOAT 4个字节 单精度 float(5,2)表示总长为5,整数3位,小数2位

DOUBLE 4个字节 双精度 double(5,2)表示总长为5,整数3位,小数2位

BOLD:

大文本,存储图片,新闻

约束:

主键约束 PRIMARY KEY 主键不能为空,不能重复,1个表中只能有1个主键

不能为空约束 NOT NULL 一个表中可以设置多个不能为空的约束

唯一约束 表示该表中的列中的数据唯一,一个表中可以设置多个唯一约束

检查约束 check(height>200.0) 设置条件 例如,age>18;

外键约束 多表关联时使用

新建数据库表

t_student 利用前缀,便于区分和管理

CREATE TABLE t_student(

​ 列 类型

​ id INT,

​ name CHAR(4),

​ sex VARCHAR(1),

​ height FLOAT(5,2)

);

CREATE TABLE t_student(
num INT,
NAME VARCHAR(4),
#性别是固定的,采用定长字符类型
sex CHAR(1),
birthday DATE,
#身高,数据总长度为4,小数1位
height FLOAT(4,1),
#电话号码是固定的,采用定长字符类型
phone CHAR(11),
#register 登录,login 注册
res_time DATETIME

);
DROP TABLE t_student;

CREATE TABLE t_student(
num INT PRIMARY KEY AUTO_INCREMENT COMMENT ‘学号,主键’,v
NAME CHAR(4) NOT NULL,
sex VARCHAR(1) DEFAULT ‘男’,
birthday DATE NOT NULL,
height FLOAT(4,1) CHECK(height>100.0) CHECK(height<200.0),
phone CHAR(11) NOT NULL UNIQUE,
reg_time DATETIME

);
#删除表
DROP TABLE IF EXISTS t_student;
#创建一个没有任何约束的表
CREATE TABLE t_student(
num INT,
NAME VARCHAR(4),
sex CHAR(1),
birthday DATE,
height FLOAT(4,1),
phone CHAR(11),
reg_time DATETIME

);
#修改表名
RENAME TABLE t_student TO table_student;

#复制表结构 对某张表进行操作时,只能复制结构
CREATE TABLE table_student LIKE t_student;

#添加主键约束,删除主键约束
ALTER TABLE t_student ADD PRIMARY KEY(num);
#删除主键约束
ALTER TABLE t_student DROP PRIMARY KEY;

#设置主键自增
ALTER TABLE t_student MODIFY num INT AUTO_INCREMENT;
#删除主键自增
ALTER TABLE t_student MODIFY num INT;

#设置列数不能为空
ALTER TABLE t_student MODIFY NAME VARCHAR(4) NOT NULL;
#设置列数可以为空
ALTER TABLE t_student MODIFY NAME VARCHAR(4) NULL;

#添加唯一约束
ALTER TABLE t_student ADD CONSTRAINT uni_phone UNIQUE (phone);
#删除唯一约束
ALTER TABLE t_student DROP INDEX uni_phone;

#添加检查约束
ALTER TABLE t_student ADD CONSTRAINT check_height CHECK(height>100.0);
#删除检查约束
ALTER TABLE t_student DROP CHECK check_height;

#添加列
ALTER TABLE t_student ADD weight FLOAT(5,2);
#删除列
ALTER TABLE t_student DROP weight;
#向指定位置添加表
ALTER TABLE t_student ADD weigeht FLOAT(5,2) BEFORE height;

#修改列的名称
ALTER TABLE t_student CHANGE phone mobile CHAR(11);
#修改(列)字段的类型
ALTER TABLE t_student MODIFY mobile VARCHAR(11);

– alter table 表的名称 add/drop/modify/change

#DML 数据操作语言,增删改

– 插入数据insert,删除数据delete,修改语句update
#插入数据,方式1 VALUES
INSERT INTO t_student(NAME,sex,birthday,height,mobile,reg_time)
VALUES(‘张三’,‘男’,‘2000-1-5’,172.0,‘1234568’,NOW());
#方式2 SET
INSERT INTO t_student SET NAME=‘李四’,sex=‘女’,birthday=‘2001-5-9’,
height=162,mobile=480654,reg_time=NOW();
#方式3,多行 VALUES
INSERT INTO t_student(NAME,sex,birthday,height,mobile,reg_time)
VALUES(‘王五’,‘男’,‘2000-1-5’,172.0,‘1234568’,NOW()),
(‘吴六’,‘男’,‘2000-1-5’,172.0,‘1234568’,NOW())
INSERT INTO t_student(NAME,sex,birthday,height,mobile,reg_time)
VALUES(‘吴六’,‘男’,‘2000-1-5’,172.0,‘1234568’,NOW())

#方式4
CREATE TABLE stu LIKE t_student;
INSERT INTO stu(NAME,sex,birthday,height,mobile,reg_time) SELECT
NAME,sex,birthday,height,mobile,reg_time FROM t_student

#修改数据 update
#UPDATE t_student SET birthday=‘2001-12-31’ 全部的birthday都被修改
UPDATE t_student SET birthday=‘2001-12-31’,height=183.12 WHERE num=3;

#删除数据

DELETE FROM t_student 全部删除,清空

DELETE FROM t_student WHERE num=4;

#DQL 查询语言,使用频率最高的语言

#select 查询列表(要查询的结果) from 表名;
#select 查询结果 from 表名 where(主键) 条件.排序,分组,行数限制,子查询
#多表 关联查询

– 查询结果进行处理
– 获得结果是只读的不可修改
SELECT NAME FROM t_student;
#结果之前的100就是一个常量值,这里既可以是常量还可以是表达式
SELECT 100,NAME FROM t_student;
SELECT 100*98,NAME FROM t_student ;
SELECT height FROM t_student;
#给每个人的身高+5,然后再输出
SELECT height+5,height FROM t_student;

SELECT VERSION();#mysql的版本号

– * 这是查询所有的列
SELECT * FROM t_student;
– 查询特定列 建议使用的
SELECT NAME,sex,birthday FROM t_student ;

– 去除重复数据并输出 针对查询出来的结果,要求所有列都是相同的
– 由于主键自增,所以用*全部输出不能过滤重复元素
SELECT DISTINCT * FROM t_student;
– 选择一些数据进行判断并输出
SELECT DISTINCT NAME,sex,height FROM t_student;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值