数据库(DB DataBase)
作用:存数据,管理数据。
概念:数据仓库,软件,安装在操作系统(Windows,linux,mac...)之上的 sql可以存数据,500W!
数据库分类
关系型数据库(SQL):Mysql,Oracle,DB2,sqllite。通过表和表,行和列之间关系存储。
非关系型数据库(NoSQL not only sql):Redis,MongDB。对象存储,通过对象自身属性来存储。
操作数据库>操作数据库的表>操作数据库表中的数据
CREATE DATABASE [IF NOT EXIT] westos
[Err] 1007 :数据库已存在。 记得创建完刷新。
DROP DATABASE [IF EXIT] westos
USE `westos`
SHOW DATABASES
数值:常用的有 int 四个字节 ,bigint 八个字节,float 四个字节,double 八个字节 金融计算一般用decimal
字符串 : 常用的 char 0-255 , varchar 0-65535,tinytext 2^8-1,text2^16-1
时间和日期:data:yyyy-mm-dd time: hh:mm:ss datatime:data+time timestamp:1970.1.1到现在的毫秒数 year:年份表示。
null 不要使用null运算
unsigned:无符号的整数,该列不能为负数
zerofill:0填充
自增:在上一条基础加1 通常设置主键。
非空:not null 不能为空的值
默认:设置默认值 不指定值则有默认值
拓展:
id 主键
`version` 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_updata 修改时间
CREATE TABLE [IF NOT EXISTS]`student1`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号‘ ,
?
`name` VARCHAR(30) NOT NULL DEFAULT ‘匿名‘ COMMENT ‘姓名‘,
?
PRIMARY KEY (`id`)
?
?
)ENGINE=INNODB DEFAULT CHARSET=utf8
comment 是注释,主键一般写在句子最后,default和comment后边都是单引号,AUTO_INCREMENT是自增
SHOW CREATE TABLE `student1` --查看表的定义语句
SHOW CREATE DATABASE `student` --查看创建数据库的语句
DESC `student1` --显示表的结构
然后在结果上复制,粘贴到文本上
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 大 |
MYISAM:节约空间,速度快
INNODB:安全性高,事务的处理,多表多用户操作
ALTER TABLE student2 RENAME AS student1
ALTER TABLE student2 ADD age INT(11)
ALTER TABLE student2 MODIFY name VARCHAR(13)-- 修改属性 ALTER TABLE student2 CHANGE id id1 INT(100)--修改名字 记住一定要重新设置
ALTER TABLE student2 DROP id1
所有的创建删除最好都加上 IF EXISTS
insert :
INSERT INTO `student2`(`name`) VALUES(‘刘晗‘),(‘刘东‘)。 插入多个值,INSERT INTO `student2`(`name`,`age`) VALUES(‘刘晗‘,‘19‘),(‘刘东‘,‘18‘)
updata:
UPDATE `student2` SET `name`=‘通通‘ WHERE id1=3 换多个数,
delete,TRUNCATE
DELETE FROM `student2` WHERE `id1`=4 --不会影响自增 TRUNCATE TABLE `student2`--自增变为0
SELECT 字段 FROM 表 --查询表信息
给字段起别名
拼接字符串
SELECT `id`,`name` FROM `student` SELECT `id` AS 学号,`name`AS 名字 FROM `student` SELECT CONCAT(‘姓名‘:,name) AS 名字FROM `student`
去重:去除重复数据,只显示一条
SELECT DISTINCT `id` FROM `student`
where:检索数据
模糊查询:比较运算符,重点有(is null,is not null,between。。。and,like,in)
like的用法:where+字段+like+关键字(%或者_)
in:where+字段+in+(范围) 范围为具体的一个或者多个值
操作 | 描述 |
---|---|
Inner Join | 如果表中至少有一个匹配就返回行 |
Left Join | 会从左表中返回所有值,即使右表中没有匹配 |
Right Join | 会从右表中返回所有值,即使左表中没有匹配 |
原文:https://www.cnblogs.com/ltdh/p/12416361.html