12-26 周报:MySQL数据库 增删改查

MySQL 数据库

  • MySQL数据库是最为流行的关系型数据库管理系统,现在属于Oracle公司,关系型数据库可以增加在操作数据时的灵活性。
  • MySQL数据库最多可以支持存储5000万条记录的数据。

RDBMS 关系数据库管理系统

1.RDBMS特点:
  • 数据以表格的形式储存
  • 每一行是各种记录的名称
  • 每一列是记录名称所对应的数据域
  • 由多个列与行组成一张表
  • 若干个表单组成一个数据库
2.RDBMS术语:
  • 数据库:数据库是一些有关联表的集合。
  • 数据表:表是数据的矩阵。在一个数据库中看起来就像一个简单的电子表格。
  • 字段:就是表格的其中一列(数据)的表示,这其中包含的必须是相同类型的数据。
  • 记录:表示一行数据,是指一组相关的数据,包含不同类型的数据,但彼此相关。
  • 主键:主键是一张表中唯一存在的一列数据。可以用主键来查询一行数据。
  • 外键:是用于建立两个表之间联系的一列数据,如果设置某个字段为外键,则可以通过外键来调用另一个表中所有的数据。
  • 复合键:将多个列数据设置为索引键。
  • 索引:索引可以快速访问数据库中表中的特定信息。索引是对数据库表中一列或者多列的值进行排序的一种结构,就类似于书籍的目录。

MySQL操作数据库的常用代码

//为了规范代码 方便他人读取,所有操作指令,函数都使用大写字符表示
 //但为了方便记忆在这里都用小写字符表示了
1.创建数据库  代码
 create database 数据库名字;
2.删除数据库  代码
 drop database 数据库名字;
3.显示MySQL管理的所有数据
 show databases ;
4.选择操作的数据库
 use 数据库名称;
5.查看当前数据库所有的表格
 select database();
 

数据库中的数据类型(常用)

数值类型
//数值类型
1.小整数值
id tinyint unsigned ;//无符号  范围只能取0`255.
id tinyint ;//有符号  范围为-128~127.
2. 大整数值[2字节]
id smallint unsigned;//无符号 范围为0~65535.
id smallint ;//有符号 范围为-32768~32767.
3. [4字节]大整数值(最为常用的整数数据类型) 
id int unsigned;//无符号 范围为0~4294967295
4.极大整数[8字节]
id bigint unsigned; //超级大,且为正数。
5.单精度浮点值
money float(8,2);//8为最大的位数值,2为最大的小数位数值。这两个值可以根据需要修改。
6.双精度浮点值
money double(5,1);//5为最大的位数值,1表示最大的小数位数值。同理可以根据需要修改。

时间类型,字符串类型
#时间类型代码
1. 年月日 
`date` date; #创建时间字段
2. 时分秒
`time` time;#创建时间字段
3.年月日 时分秒
 `date time` datetime;#精确到秒
#字符串类型 代码 
1. 定长字符串 
  sex char(255); #最多只能保存255字节的内容,括号内的限定字节可以根据需要修改。
2. 变长字符串
  name varchar(255);#最多可保存255字节的内容,括号内的输入适量的字节限制可以节省空间
3. 短文本字符串
  content tinytext ;#最多可以保存255字节内容。
4.文本数据
  content text;#最多可以保存535字节的内容。
5.中长文本数据
 content mediumtext;# 最多可以保存16777215字节内容
6.极大文本数据
 content longtext;# 容量最大的数据类型


数据表的操作命令 (代码)

  • 虽然在MySQL中可以通过它的系统来操作数据库,建立表来保存数据但是,我们在学习的过程中必须牢记他实现的代码,这样可以更好的找出数据的问题。
  • 学好MySQL中的 SQL语言对于我们以后学习其他的数据库有很大帮助。
1.创建表
create table   表名   (字段,字段,字段.....);
  例:
  create table student (
  id int unsigned(无符号)primary key(设为主键)auto_increment,(自增约束)
  `name` varchar(50) not null,#不为空约束
  `sex` ENUM('男','女')#枚举类型二选一
  default '男',#默认约束
  c_id int unsigned,
  foreign key(c_id)references 关联的表名 (字段名)#外键约束
  );
  
2.删除表
drop table 表名;

3.查看表结构
desc table 表名;

字段约束

1.主键约束(primary)
  • 每张表只能存在一个主键。
  • 主键的作用主要用于保证记录(行)的唯一性。
  • 主键约束默认添加非空约束(not null)
  • 逐渐的值必须唯一
2.自增约束(auto_increment)
  • 自增约束必须配合主键使用
  • 默认情况下,起始值为1,每次增加1
3.外键约束(foreign key)
  • 值必须指向需要关联表的主键值
  • 外键约束是用于实现1对1,1对n,n对n关系的
  • 外键约束的要求:(1)形成关联的表必须是有相同的储存引擎。(2)外键与参考字段必须是相同的数据类型。(3)外键字段与参考字段必须创建索引。如果没有手动创建,系统会自动生成。
4.唯一约束(unique)
  • 唯一约束是让这个字段中不能有重复的内容
  • 唯一约束中可以出现多个null值
  • 每张表中可以设置多个有唯一约束的字段
5.非空约束(not null)
  • 字段默认可以为null,但是非空字段不能为null,必须要有内容。
6.默认约束(default)
  • 当插入记录时,如果没有明确为字段赋值,则会自动赋予默认的值。
7.无符号约束(unsigned)
  • 用于消除整数类型的负号,保存正数,只能用于整数类型

对表进行增,删,改,查的操作

  • 再创间完成一个空表之后,也就是为这个表创建完成他的所有字段之后。我们就需要往字段中添加内容,也就是符合字段要求的数据值。而要实现这一方法的话,除了可以在MySQL系统中直接对数据进行操作之外,我们可以通过命令列界面,查询中输入sql语法进行实现。
#1.添加数据

语法:
     insert into 表名 (字段,字段,字段,字段......) 
     values ('内容','内容','内容','内容'......),
            ('内容','内容','内容','内容'......),
            ('内容','内容','内容','内容'......);

例子:

INSERT INTO person ( `name`, `age`, `sex`, `nation` )

VALUES
	( '妲己', '22', '女', '汉族' );#这里可以是一组数据,也可以数多组添加多个数据进去
INSERT INTO person ( `name`, `age`, `sex`, `nation` )
VALUES
	( '程咬金', '20', '男', '汉族' ),
	( '曹操', '21', '男', '汉族' ),
	( '黄月英', '24', '女', '汉族' );


#2.修改数据

语法:

update 表名 set 修改的内容 :字段='内容'(如果不附加条件则会把整个字段全部修改)
where (条件) id = xxx //这里是附加条件=== if(id==xxx){修改}
 
例子:

UPDATE person SET nation='苗族',age='30' WHERE `name`='黄开汉';


#3.删除数据

语法:

#会直接删除一整条记录(行)
delete from 表名 where 条件

例子:

DELETE  FROM person WHERE  `name`='黄月英' and age = '24';
INSERT INTO person (`name`,`age`,`sex`,`nation`)
VALUES 
('诸葛亮','34','男','汉族'),
('太乙','21','男','汉族'),
('雅典娜','23','女','外国人');


#4.查询数据

语法:

select 字段名 from 表名 where 条件

例子:

SELECT `name` FROM person WHERE nation='维吾尔族';


常用的 MySQL 函数

# MySQL 函数(字符串类型)

# 将多个单元格 并列为一格
SELECT CONCAT(`name`,':  ',`sex`,':  ',age) AS stu FROM person;
#将字段中的字符串内容分割输出 substr (字段名,截取的起始位置,终止位置);
SELECT CONCAT(id,SUBSTR(`name`,2,3)) substrname FROM person;
#将括号中的字母转为大写字母 upper('英文字母')
SELECT UPPER ('abcABS');
#将括号中的字母转为小写字母 lower('英文字母')
SELECT LOWER('ABCDEcbu');
#去除字符串首尾空格;
SELECT TRIM('  abc  ');
#去除字符串右侧空格;
SELECT RTRIM('  ABC  ');
#去除字符串左侧空格;
SELECT LTRIM('  ABC  ');
#替换字符串中的内容replace('需要被替换的字符串','被替换的内容','替换后的内容');
SELECT REPLACE('ABCDEFGHIJKLMN','BC','FFFF');
#在字段所有内容的前面循环添加字符串然后输出表格;lpad(字段名,字符串总长度,循环添加的字符内容)。
SELECT LPAD(`name`,5,"学生") FROM person;
#在字段所有的内容后面循环添加字符串然后输出表格,rpad(字段名,字符串总长度,循环添加的字符内容)。
SELECT RPAD(`name`,5,'!') FROM person;
#找到字符串中某一个子串第一次出现的位置;
SELECT INSTR('ABCABCABCBACBABABC','BC');
#length(字段名) 输出字段每一项内容的字节长度;
SELECT id,`name`,LENGTH(`name`) name_len FROM person;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值