码迷,mamicode.com
首页 > 数据库 > 详细

MySQL总结

时间:2020-05-29 21:37:03      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:rod   free   tab   记录   general   区分大小写   dal   sof   单行   

MySQL总结

 
 
 
1.MySQL
1.1SQL 包含以下 4 部分:
  1. 数据定义语言(DDL):DROP、CREATE、ALTER 等语句。
  2. 数据操作语言(DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
  3. 数据查询语言(DQL):SELECT 语句。
  4. 数据控制语言(DCL): GRANT、REVOKE、COMMIT、ROLLBACK 等语句。
1.2数据库访问接口:
不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口,执行 SQL 语句,进行数据库管理。主要的数据库访问接口主要有  ODBC、JDBC、ADO.NET 和 PDO。
MySQL 数据库管理系统具有以下系统特性:
  • 使用 C 和 C++ 编写,并使用多种编译器进行测试,保证源代码的可移植性。
  • 支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统。
  • 为多种编程语言提供了 API。这些编程语言包括 C、C++、PythonJava、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • 支持多线程,充分利用 CPU 资源。
  • 优化的 SQL 查询算法,有效地提高查询速度。
  • 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他的软件中。
  • 提供多语言支持,常见的编码如中文的 GB 2312、BIG 5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。
  • 提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。
  • 提供用于管理、检查、优化数据库操作的管理工具。
  • 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • 支持多种存储引擎。
1.3MySQL字符集和校对规则
  • 字符
  • 字符集(Character set):定义字符和二进制的额对应关系。
  • 字符编码 (Character encoding):规定字符的编码如何存储到计算机。
  • 校对规则(Collation)也可以称为排序规则,是指在同一个字符集内字符之间的比较规则。字符集和校对规则是一对多的关系,每个字符集都有一个默认的校对规则。字符集和校对规则相辅相成,相互依赖关联。 
SHOW VARIABLES LIKE ‘character%‘;  命令查看当前 MySQL 使用的字符集
SHOW VARIABLES LIKE ‘collation\_%‘;命令查看当前 MySQL 使用的校对规则
校对规则命令约定如下:
  • 以校对规则所对应的字符集名开头
  • 以国家名居中(或以 general 居中)
  • 以 ci、cs 或 bin 结尾,ci(Case insensitive) 表示大小写不敏感,cs (Case sensitive)表示大小写敏感,bin 表示按二进制编码值比较。
1.4MySQL注释与大小写问题
-- 单行注释
#单行注释
/*多行注释*/
MySQL 在 Windows 系统下不区分大小写,但在 Linux 系统下默认区分大小写。因此,数据库名、表名和字段名,都不允许出现任何大写字母,避免节外生枝。
一般建议统一使用小写字母,并且 InnoDB 引擎在其内部都是以小写字母方式来存储数据库名和表名的。这样可以有效的防止 MySQL 产生大小写问题。
 
2.MySQL常用语句
2.1操作数据库
查询MySQL中所有数据库   SHOWDATABASESLIKE[‘数据库名‘];
查询数据库结构 SHOWCREATEDATABASE<数据库名>;
创建数据库    
CREATDATABASE[IFNOTEXISTS]<数据库名>
[DEFAULTCHARACTERSET<字符集名>]
[DEFAULTCOLLATE 校对规则名];
 
修改数据库
ALTERDATABASE[数据库名]{
[DEFAULT]CHARACTERSET<字符集名>
[DEFAULT]COLLATE<校对规则名>}
 
删除数据库    DROPDATABASE[IFEXISTS]<数据库名>
选择数据库   USE<数据库名>
 
 
2.2操作数据表
创建表    CREATETABLE<表名>([<列名1><类型1>[,]<列名n><类型n>])[表选项][分区选项];
查询数据库中可用的表  show tables;
查看表结构  DESCRIBE<表名>;DESC<表名>;
查看创建表时的CREATETABLE语句,还可以查看存储引擎和字符编码
SHOWCREATETABLE<表名>\G
修改数据表
ALTERTABLE<表名>[修改选项]
修改选项的语法格式如下:
{ADD[COLUMN]<列名><类型>AFTER<已经存在的字段名>;
|CHANGE[COLUMN]<旧列名><新列名><新列类型>
|ALTER[COLUMN]<列名>{SETDEFAULT<默认值>|DROPDEFAULT}
|MODIFY[COLUMN]<列名><类型>
|DROP[COLUMN]<列名>
|RENAME[TO]<新表名>
|CHARACTERSET<字符集名>
|COLLATE<校对规则名>}
删除表
DROPTABLE[IFEXISTS] 表名1[,表名2, 表名3...]
 
2.3操作表中数据
数据查询
SELECT
{*|<字段列名>}
[
FROM<1>,<2>
[WHERE<表达式>
[GROUPBY<group by definition>
[HAVING<expression>[{<operator><expression>}]]
[ORDERBY<order by definition>]
[LIMIT[<offset>,]<row count>]
]
查询数据去重 
SELECTDISTINCT<字段名>FROM<表名>;
设置别名
<表名>[AS]<别名><字段名>[AS]<别名>
限制查询个数  
select field from table limit 5;  查询0开始的5个数据   
select field from table limit 5,10;    查询5+1开始的10个数据
查询数据排序
1.select field from table order by field;  默认升序   多字段排序   
2.select field from table order by field desc;   倒序
根据limit 和order by 查询一列最大值    select prod_price from product order by prod_price desc limit 1;
过滤数据
1.范围查询   select field from table where field between 5 and 10;
 
 
--通配符LIKE%匹配0/1/多个字符    _匹配一个字符
SELECT*FROM t_customerinfo WHERE custname LIKE‘_万%‘;
 
操作表中的数据
SELECT*FROM 表名      SELECT 字段 FROM 表名
 
SELECTDISTINCT 字段12FROM 表名
使用 DISTINCT 关键字时需要注意以下几点:
DISTINCT 关键字只能在 SELECT 语句中使用。
在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前面。
如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。
 
SELECTCOUNT(DISTINCT name,age)FROM student;
 
 
SELECT*FROM  student LIMIT3,5  返回从第 4 条记录开始的行数为 5 的记录
 
 
SELECT*FROM student ORDERBY height DESC,name ASC
GROUPBYGROUP_CONCAT()
GROUPBY 关键字可以和 GROUP_CONCAT() 函数一起使用。GROUP_CONCAT() 函数会把每个分组的字段值都显示出来。
 
2.4数据库用户管理
CREATEUSER‘songjin‘@‘127.0.0.1‘IDENTIFIEDBY‘12345‘;
SELECTPASSWORD(‘12345‘);
DROPUSER‘songjin‘@‘127.0.0.1‘;
 
 
 
 
 
???企企csvcsvcsvcsvcsv

csv技术图片

 

MySQL总结

标签:rod   free   tab   记录   general   区分大小写   dal   sof   单行   

原文地址:https://www.cnblogs.com/a19960101/p/12989403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!