MySQL笔记

数据库概念

存储数据的仓库就是数据库

数据库的优点

  • 能存储大量的数据
  • 保持数据完整性和一致性
  • 方便查找/更新/删除数据
  • 保证的数据的安全性

数据库的类型

关系型数据:oracle mysql sqlserver db2
是以二维表的方式保存数据,一般银行使用,数据精准
非关系型数据:redius
以键值对的方式存储,一般大数据用
特点是查询快
常用的数据库有:mysql oracle

数据库的构成

  • 数据库
  • 数据表
  • 数据
  • 顺序:先有数据库,然后建表,然后根据不同类型的表存数据

SQL语言

结构化查询语言,操作数据库语句

数据语言

  • DDL:数据定义语言,创建数据库,创建表
  • DML:数据操作语言,数据插入/更新/删除
  • DCL:数据控制语言,用户权限,表权限
  • DQL:数据查询语言,数据查询
数据表
  • 表的构成:
    表由行和列构成;
    列叫做字段;
    行叫做记录;

数据表创建

SQL语句来创建:
创建 数据库 student-test 设置字符集 utf-8
create database student-test character set utf8;
显示数据库: show databases;
删除数据库:drop database student-test;

  • 数据的类型:
    整型:int
    浮点型:float double
    浮点型(保留几位小数):decimal(总的位数,小数位数),例如:decimal(9,3),共有9位数,其中保留三位小数
    字符型:
    • char:固定长度字符型,char(长度)=char(5)
      • 1个长度一个字节
      • char一般存字符,字母,数字…
      • 1汉字=2字节
    • nchar:固定长度字符型,nchar(5)
      • 1个长度两个字节
      • 存汉字用
    • varchar:可变长度字符型,这个设置最大长度,如果数据只使用一部分长度,剩余的长度可分配出去,一旦后面加长度,分配的长度会回收回来使用。(一个长度单字符)
    • nvarchar :可变长度字符型,这个设置最大长度,如果数据只使用一部分长度,剩余的长度可分配出去,一旦后面加长度,分配的长度会回收回来使用。(一个长度双字符)
    • 日期类型:
      • date:表示年月日
      • time:表示时分秒
      • datetime:表示年月日时分秒
      • 字符串类型和日期类型需要加单引号
  • 创建表
    • 约束的作用:保证数据的完整性和一致性
    • 给数据添加约束
      • 约束:
        • 主键约束:primary key通过主键约束,唯一的确定一条记录
          • 主键不能重复
          • 主键的值不能为空
        • 主键自动增长:mysql自动创建
          • auto_increment
          • 默认从1开始,每次增长1个
        • 非空约束性:not null,限制字段内容必须填写
        • 唯一约束性:unique,限制字段内容不能重复
          • 可以为空,但只能有一个null值
        • 主外键约束
          • 外键表的外键字段的值,依据主键表的主键字段来的
          • foregin key references
            案例:
            创建三个表,一个存放学生信息,一个存放课程内容,一个存放学生课程分数
-- 创建学生表
-- 语法:
/*
create table 表名(
	字段名 字段类型 约束,
...
)auto_increment=xxx;
*/
create table student (
	stuid int primary key auto_increment,
	sname nvarchar(50) not null,
	sex CHAR(2),
	birthday date,
	cla varchar(50),
	phone int unique
)auto_increment=1001;
-- 创建课程表
create table course(
	cid int primary key auto_increment,
	cname nvarchar(50) unique
)auto_increment=2001;
-- 创建成绩表
-- foreign key (外建字段) references 主键表名(主键字段)
create table score(
	sid int primary key auto_increment,
	stuid int,
	cid int,
	foreign key (stuid) references student(stuid),
	foreign key (cid) references course(cid)
)auto_increment=3001;

数据操作

  • 插入数据
    • insert into 表名 [(字段列表)] values (值列表); 这里的[]表示可写可不写
  • 更新数据
    • update 表名 set 列=新值, … [where条件]
  • 删除数据
    • delete from 表名 [where条件]

案例:

/*DML : 数据操作语言*/
/*插入数据*/
-- 插入单行数据
-- 语法:insert into 表名 [(字段列表)] values (值列表);
insert into student values (1001,'郭','男','1970-1-1','158',110);
-- 自动增长
insert into student values (null,'kb','男','1970-1-1','158',1101);
insert into student values (stuid,'noman','男','1970-1-1','158',1102);
insert into student values (stuid,'noman','男','1970-1-1','K9508',1102);
insert into course values (cid,'葵花宝典');
insert into score values (sid,1010,2001);
-- 插入部分数据
insert into student (sname,phone) values ('程',1103);
insert into student (sname,phone) values ('程',1103);
-- 插入多行数据
-- 语法:insert into 表名 values (值1),(值2),(值3);
insert into student (sname,phone) values('程德坤1',1104),('程德坤2',1105),('程德坤3',1106);
-- 修改数据
-- 语法:update 表名 set 列1=新值1,列2=新值2,.... [where 条]
-- 修改郭德纲的性别和电话
update student set sex='女',phone=1107 where sname ='郭';
-- 删除数据
-- 语法:delete from 表名 [where 条件]
-- 语法:truncate table 表名;
-- 删除郭德纲
delete from student where sname ='郭';
truncate table student; -- 永久删除,无法回滚。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值