mysql基础小结

基础操作

 1 # 选择数据库
 2 show databases;
 3
 4 # 创建temp库,utf8
 5 create database temp character set utf8;
 6
 7 # 选择temp库
 8 use temp;
 9
10 # 创建students表
11 CREATE TABLE students (
12     id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, # 学生id,int整数型列,
13     # unsigned无符号从零开始修饰符有符号是负数到正数
14     # notnull不许为空,因为id后边要作为primary key,主键不可为空,如果不指定该属性,默认可为空
15     # auto_increment自增长
16     name CHAR(8) NOT NULL,# char
17     sex CHAR(4) NOT NULL,
18     age TINYINT UNSIGNED NOT NULL,
19     tel CHAR(13) NULL DEFAULT ‘-‘ #默认值为空,不想为空指定为——
20 );
21
22 # 增加address列students
23 alter table students add address char(60);
24
25 # age 列后插入
26 alter table students add birthday date after age;
27
28 # 删除birthday
29 alter table students drop birthday;
30
31 # tel列 重命名为 telphone
32 alter table students change tel telphone char(13) default "-";
33
34 # name列 数据类型修改为 char(16)
35 alter table students change `name` `name` char(16) not null;
36
37 # 删除 birthday 列
38 alter table students drop birthday;
39
40 # 重命名 students 表为 workmates
41 alter table students rename workmates;
42
43 # 查看表
44 show tables;
45
46 # 查看表信息
47 describe workmates;
48 describe students;
49 # 删除 students 表
50 drop table workmates;
51
52 # 删除 temp 库
53 drop database temp;

查询语句

  1 # 选择数据库
  2 use credit;
  3
  4 # 查询语句
  5 SELECT * FROM user_info limit 20;
  6
  7 SELECT user_id,occupation FROM user_info limit 20;
  8
  9 SELECT * FROM user_info
 10 where sex=1 and (education=1 or marriage=1)
 11 limit 20;
 12
 13 # 插入语句
 14 insert into user_info values (‘A10‘,‘1‘,‘1‘,‘1‘,‘1‘,‘1‘);
 15 insert into user_info(user_id,sex) values (‘A10‘,‘1‘);
 16
 17 # 记录更新
 18 set sql_safe_updates = 0;
 19 update user_info set occupation=‘2‘,education = ‘2‘
 20 where user_id = ‘A10‘;
 21
 22 # 删除记录
 23 delete from user_info where user_id = ‘A10‘;
 24 # delete from user_info; # 删除user_info表所有记录
 25
 26 # 排序
 27 select * from user_info order by user_id;
 28 select * from user_info order by user_id asc; # 升序排列
 29 select * from user_info order by user_id desc; # 降序排列
 30 select * from user_info order by sex desc,education desc;
 31 select * from user_info where sex = 1 order by user_id;
 32
 33 # 分组
 34 SELECT
 35     user_id, AVG(trans_amount)
 36 FROM
 37     bank_detail
 38 GROUP BY user_id;
 39
 40 SELECT
 41     user_id,trans_type, AVG(trans_amount) trans_amount_avg
 42 FROM
 43     bank_detail
 44 GROUP BY user_id,trans_type;
 45
 46 # 空值
 47 select * from user_info where sex is null;
 48 select * from user_info where sex is not null;
 49
 50 # 模糊匹配
 51 select * from user_info where user_id like ‘278%‘; # user_id以278开头
 52 select * from user_info where user_id like ‘%278%‘; # user_id包含278
 53 select * from user_info where user_id like ‘%278‘; # user_id以278结尾
 54
 55 # 正则匹配
 56 SELECT * FROM user_info WHERE user_id REGEXP ‘^278‘; # user_id以278开头
 57 select * from user_info where user_id like ‘278%‘;
 58
 59 # 内连接
 60 SELECT user_info.user_id,# 查询用户表里的
 61        sex,
 62        trans_amount
 63 FROM user_info,bank_detail #两个表中都有要查询的字段
 64 WHERE user_info.user_id = bank_detail.user_id;# 连接条件两张表上的用户ID保持一致
 65
 66 select count(*) from (
 67 SELECT user_info.user_id,
 68        sex,
 69        trans_amount
 70 FROM user_info,bank_detail
 71 WHERE user_info.user_id = bank_detail.user_id) a;
 72
 73 # 左连接
 74 select count(*) from (
 75 SELECT
 76     user_info.user_id, sex, trans_amount
 77 FROM
 78     user_info
 79         LEFT JOIN
 80     bank_detail ON user_info.user_id = bank_detail.user_id) a;
 81
 82 # 右连接
 83 SELECT
 84     user_info.user_id, sex, trans_amount
 85 FROM
 86     user_info
 87         RIGHT JOIN
 88     bank_detail ON user_info.user_id = bank_detail.user_id;
 89
 90
 91 # 自定义函数
 92 DROP FUNCTION if exists standardize;
 93
 94 DELIMITER $
 95 CREATE FUNCTION standardize(x float,y int)
 96 RETURNS float
 97 BEGIN
 98 DECLARE a float;
 99 SET  a = x/5;
100 RETURN a+y;
101 END $
102 DELIMITER ;
103
104 select standardize(3.2,3);
105
106 SELECT
107     STANDARDIZE(trans_amount,1)
108 FROM
109     bank_detail;
110
111 # 存储过程
112 drop procedure if exists info;
113
114 delimiter $
115 create procedure info(uid int)
116 begin
117 select * from user_info where user_id = uid;
118 end $
119 delimiter ;
120
121 call info(10);
122
123 # 重复数据
124 SELECT
125     user_id, COUNT(*) AS repetitions
126 FROM
127     bank_detail
128 GROUP BY user_id
129 HAVING repetitions > 1;
130
131 # 过滤重复
132 select count(*) from
133 (select * from bank_detail
134 group by user_id,trans_amount) a;
时间: 2024-12-24 08:43:25

mysql基础小结的相关文章

MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》

最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离等,对于普及MySQL基础非常有用.记录一下,以便于后面查阅. 附目录: 1章 MariaDB架构与历史1 1.1 MariaDB的介绍 1 1.2 MariaDB和MySQL的兼容性 2 1.3 MariaDB 10.0新增的功能 3 1.3.1 更多的存储引擎 4 1.3.2 速度的提升 5 1.3.3

MySQL基础实战

一.数据库基础: DBMS:数据库管理系统(Database Management System) RDBMS:关系数据库管理系统(Relational Database Management System) C/S:通过专有协议 关系模型:表(行,列),二维关系 范式:第一范式,第二范式,第三范式: 关系运算: 选择 投影 数据库:表,索引,视图(虚表) SQL:结构化查询语言 DDL:数据定义语言 DML:数据操作语言 编程接口: 自行定义存储过程 自行定义存储函数 触发器: 时间调度器:类

【夯实Mysql基础】记一次mysql语句的优化过程!

1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使用了 2个 order by和 1个limit的分页 sql. 一个sql是上一个sql的count(*),即链接了5个表,当然没有limit了(取总数). 2. [着手优化] 1)[优化思路] 第一条是 做client调用 service层的数据缓存 第二条就是 优化sql本身. 这里着重讲一下

MySQL 基础(二)

MySQL 基础(二) ============================================================================== 概述: ============================================================================== MySQL   1.数据结构: ★分类: 结构化数据:  关系型数据库 半结构化数据:YAML.XML.JSON 非结构化数据:日志文件,NoSQL  

MYSQL养成记-MYSQL基础增强(Myql函数)

MYSQL基础增强(Myql函数) 在这里只介绍一些常用的,比较新颖的: 字符串函数: CONCAT://字符串连接函数mysql> SELECT CONCAT('My', 'S', 'QL'); -> 'MySQL' mysql> SELECT CONCAT('My', NULL, 'QL');//与null连接会变null -> NULL mysql> SELECT CONCAT(14.3); -> '14.3' CONCAT_WS://含分隔符的字符串连接mysq

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

mysql字符集小结

author:skate time:2013/04/09 mysql字符集小结 今天同事阿杰兄发现内部一台mysql测试服务器乱码,以前也记录过关于字符集的,今天再补充下 修改mysql的字符集和默认存储引擎 http://blog.csdn.net/wyzxg/article/details/7581415 查看库现有的字符集: mysql> show variables like '%char%'; +--------------------------+------------------

mysql基础和数据库的优化

Mysql基础... 4 Mysql介绍... 4 登录mysql mysql –u root –p[掌握]... 4 SQL语言... 4 DCL. 4 grant. 4 revoke. 4 DDL. 4 建库... 4 删库... 4 建表... 4 看表结构... 5 删表... 5 修改表... 5 DML[重点]... 5 增加... 5 删除... 5 修改... 5 查看... 5 排序... 5 总数... 5 求和... 5 平均... 6 最大... 6 最小... 6 表连

MYSQL基础笔记(三)-表操作基础

数据表的操作 表与字段是密不可分的. 新增数据表 1 Create table [if not exists] 表名( 2 字段名 数据类型, 3 字段名 数据类型, 4 字段n 数据类型 --最后一行不需要加逗号 5 )[表选项]; If not exists:如果表名不存在,那么就创建,否则不执行创建代码,实现检查功能. 表选项:控制表的表现 1.字符集:charset/character 具体字符集:--保证表中数据存储的字符集. 2.校对集:collate 具体校对集: 3.存储引擎:e