一、数据库语法
-- 删除函数
DROP FUNCTION CHECKsex;
二、mysql文件1
数据库概念
在计算机中, 通过一定的结构,来组织,存储和管理数据的软件系统
数据库管理系统(Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能
数据库分类
关系型数据库
Oracle,Microsoft SQL Server,MySQL,PostgreSQL,DB2,Microsoft Access, SQLite,Teradata等
非关系型数据库(看看)
面向高性能并发读写的key-value数据库
key-value数据库的主要特点是具有极高的并发读写性能
Key-value数据库是一种以键值对存储数据的一种数据库,类似Java中的map。可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值。
Redis, Amazon DynamoDB, Memcached
Memcached---https://www.runoob.com/Memcached/Memcached-tutorial.html
面向海量数据访问的面向文档数据库
这类数据库的主要特点是在海量的数据中可以快速的查询数据
文档存储通常使用内部表示法,可以直接在应用程序中处理,主要是JSON。JSON文档也可以作为纯文本存储在键值存储或关系数据库系统中。
MongoDB,Amazon DynamoDB,Couchbase,Microsoft Azure Cosmos DB和CouchDB
MongoDB---https://www.runoob.com/mongodb/mongodb-tutorial.html
面向搜索数据内容的搜索引擎
搜索引擎是专门用于搜索数据内容的NoSQL数据库管理系统。
主要是用于对海量数据进行近实时的处理和分析处理,可用于机器学习和数据挖掘
Elasticsearch,Splunk,Solr,MarkLogic和Sphinx
面向可扩展性的分布式数据库
这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化,将数据存储在记录中,能够容纳大量动态列。由于列名和记录键不是固定的,并且由于记录可能有数十亿列,因此可扩展性存储可以看作是二维键值存储
Cassandra,HBase,Microsoft Azure Cosmos DB,Datastax Enterprise和Accumulo
数据库操作(SQL)
DDL(数据库定义语言)
数据库
创建
CREATE DATABASE [IF NOT EXISTS] <数据库名> [CHARACTER SET utf8]
删除
DROP DATABASE <数据库名>
查看
SHOW DATABASES;
查看服务中心所有的数据库
SHOW CREATE DATABASE <数据库名>;
查看数据库创建细节
选择
USE <数据库名>
数据表
创建
CREATE TABLE `t` ( `id` int(11) NOT NULL auto_increment, `n_id` int(10) unsigned NOT NULL, `L1` int(10) unsigned zerofill default NULL, `L2` int(11) default NULL, PRIMARY KEY (`id`,`n_id`), KEY `f_t_b` (`L1`), CONSTRAINT `f_t_b` FOREIGN KEY (`L1`) REFERENCES `my` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB DEFAULT CHARSET=utf8
修改表
修改表名
ALTER TABLE <原表名> RENAME TO|AS <新表名>
设置表编码
ALTER TABLE <表名> CHARACTERSET <编码格式>
添加列ADD
ALTER TABLE <表名> ADD <列名> VARCHAR (20) <约束>
修改Modify(重新定义)
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) NOT NULL
更换列的位置
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) AFTER<列名2>
-- 重新放置某列之后
ALTER TABLE <表名> MODIFY <列名> VARCHAR (20) FIRST
-- 将某列放在表结构的第一列
修改列名
ALTER TABLE <表名> CHANGE <原列名> <新列名> VARCHAR (200)
删除列
ALTER TABLE <表名> DROP COLUMN <列名>;
删除
DROP TABLE <表名>
查看
查看表结构
DESC <表名>
DESCRIBE <表名>
SHOW COLUMNSF ROM <表名>
SHOW [FULL] FIELDS FROM <表名>
查看创建语句
SHOW CREATE TABLE <表名>
DML(数据操纵语言)
添加记录
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
INSERT INTO TABLE_NAME(F1,F2,F3) SELECT (E1,E2,E3) FROM TABLE WHERE.....
修改记录
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
删除记录
DELETE FROM table_name [WHERE Clause]
DQL(数据查询语言)
简单查询
完整语法
select * from 表名 where 筛选条件 group by 分组字段1, 分组字段2 having 分组筛选条件 order by 排序字段1, 排序字段2 limit 起点, 数量
字段筛选 select...
别名 as
重复数据合并(去除重复的查询结果)distinct
条件筛选where
比较运算
不等于 <> !=
null值等于 <=>
大于,小于,等于,大于等于,小于等于
逻辑运算
and
or
and 和or同时使用,and优先级高,可以使用小括号控制顺序
空值判断
is null
is not null
存在判断(判断子查询中是否有结果)
exists
not exists
SELECT * FROM 表名 WHERE EXISTS (SELECT id FROM my WHERE id = 1111)
包含 in
模糊查询 like
通配符%_
any和all
ALL运算符是一个逻辑运算符,它将单个值与子查询返回的单列值集进行比较。
ALL运算符必须以比较运算符开头,例如:>,>=,<,<=,<>,=,后跟子查询。
语法
ANY运算符
分组查询group by
聚合函数
COUNT
SELECT COUNT(*) FROM TABLE_NAME-- 查询表中数据的行数,无论是否有空值
SELECT COUNT(COL_NAME) FROM TABLE_NAME-- 查询COL_NAME列中