数据库操作

最近做web开发,跟数据库打交道的时间更多了,记录一下最近常用到的数据库知识,以免遗忘了。

  • 数据库的创建
create database [if not exists] db_name [charset 字符集]
  • 删除一个数据库
drop database if exists db_name
  • 数据表的创建

create table tableName(列名1 类型 属性,列名2 类型 属性,...);
如:

DROP TABLE IF EXISTS sh_auth;
CREATE TABLE sh_auth (
  auth_id  MEDIUMINT(6) unsigned NOT NULL AUTO_INCREMENT,
  auth_name  varchar(20) NOT NULL COMMENT '名称',
  auth_pid  MEDIUMINT(6) unsigned NOT NULL COMMENT '父级id',
  auth_c  varchar(32) NOT NULL DEFAULT '' COMMENT '控制器',
  auth_a  varchar(32) NOT NULL DEFAULT '' COMMENT '操作方法',
  auth_path  varchar(32) NOT NULL DEFAULT '' COMMENT '全路径',
  auth_level  tinyint(4) NOT NULL DEFAULT '0' COMMENT '级别',
  PRIMARY KEY (auth_id)
) ENGINE=InnoDB CHARSET=utf8 comment '权限表';
  • 向已有数据表中新增字段
alter table sh_auth add test int unsigned not null default 0 comment '测试' after auth_name

MySQL数据类型

  • 整型数据类型
    这里写图片描述
  • 浮点数据类型
    这里写图片描述
  • 日期和时间类型
    这里写图片描述

  • 字符串类型
    这里写图片描述

SQL语句基础

  • 新增数据
INSERT INTO st_posts(keywords, title) VALUES('测试', '标题');
  • 删除数据
DELETE FROM st_posts where id = 3;
  • 重新创建表,清空表中的数据,重置auto_increment计数器
TRUNCATE st_posts;
  • 更新数据
UPDATE st_posts SET keywords='关键字1',title='标题1' WHERE id=1;
  • 查询数据
    格式:SELECT 字段列表|* FROM tab_name [WHERE条件] [ORDER BY排序规则] [LIMIT数量限定]
SELECT * FROM st_posts where id > 5 ORDER BY createtime LIMIT 5;

ORDER BY: 默认ESC升序 DESC降序

连接查询

连接查询分为:内连接、外链接、自然连接和交叉连接(后两种基本不用,就不介绍了)
* 内连接
内连接:[inner join]从左表取出每一条记录和右表中所有记录进行匹配,查询出符合条件的记录
如:

SELECT st_terms.name FROM st_terms INNER JOIN st_term_posts_r ON st_terms.id = st_term_posts_r.term_id
  • 外连接
    外连接:outer join 以一张主表取出所有记录和宁外一张表进行匹配,满足条件的数据保留,不满足条件的从表字段以null显示
    分类:左外连接 left join 以左表为主表
SELECT * FROM st_terms left JOIN st_term_posts_r ON st_terms.id = st_term_posts_r.term_id

右外连接 right join 以右表为主表

SELECT * FROM st_terms RIGHT JOIN st_term_posts_r ON st_terms.id = st_term_posts_r.term_id

联合查询

联合查询:将多次查询(多条select语句),在记录上进行拼装(字段不会增加)
如:查询文章表中作者id=5按时间降序排列和作者id=1按时间升序排列的文章
注意: 要使order by生效 要配合 “LIMIT 最大数”使用

(SELECT * from st_posts where author = 5 ORDER BY createtime desc LIMIT 999999)
UNION 
(SELECT * from st_posts where author = 1 ORDER BY createtime LIMIT 999999)

视图

视图的创建:
Create view 视图名字 as select语句(select语句可以使普通查询、连接查询、联合查询等)

CREATE VIEW myView as select * FROM st_terms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值