MySQL服务器支持SQL,因此,如何通过SQL告知MySQL服务器如何完成各种数据管理操作,就是重中之重。要想和服务器做好交流,则必须熟练掌握它。当使用某个程序(如mysql客户端),本质就是把SQL语句发送到服务器执行的工具。如果使用某种带有MySQL接口的编程语言来编写程序,那么这些接口就通过调用SQL语句来与服务器进行交流。
标识符语法和命名规则
-
合法标识符:不加引号的标识符可以由大小写形式的字母a-z、数字0-9、美元符号、下划线,以及范围在U+0080到U+FFFF之间的Unicode扩展字符构成。标识符的第一个字符可以标识符所允许的任何一种字符。不加引号的标识符不允许全部由数字字符构成,因为那样会使它难以与数字区分开。
-
标识符长度:大部分标识符的最大长度是64个字符。别名的最大长度是256个字符
-
标识符限定符:根据具体的上下文,标识符可能需要加以限定,来明确它所引用的是什么内容。比如数据库,可以直接指定名字;一些表,则根据情况,看是否要加入属于数据库的名字
大小写规则
SQL语句中的大小写规则因语句各个组成元素的不同而有所差异,同时还取决于你正引用的内容和MySQL服务器主机所运行的操作系统。
-
SQL关键字和函数名:SQL关键字和函数名不区分大小写,可以为任意的大小写组合。
-
数据库名、表名和视图名:MySQL使用了服务器主机上的底层文件系统所包含的目录和文件来表示数据库和表。比如,windows系统的文件名不区分大小写,因此运行在windows上面的MySQL服务器也不区分大小写。运行在Linux主机i上的MySQL服务器,通常需要区分库名和表名的大小写。
-
存储程序的名字:存储函数、存储过程和事件的名字都不区分大小写。触发器的名字区分大小写,这一点与标准的SQL的行为有所不同
-
列名和索引名:在MySQL中,列名和索引名都不区分大小写
-
别名的名字:默认情况下,表的别名要区分大小写。
-
字符串值:字符串值是否区分大小写,具体取决于它是二进制还是非二进制,并且对于非二进制,还取决于字符集的排序规则。
数据库的选择、创建、删除和更改
MySQL提供了几条数据库级的语句:USE用于选定一个默认数据库;CREATE DATABASE用于创建数据库;DROP DATABASE用于删除数据库;ALTER DATABASE用于更改数据库的全部属性。
创建数据库的方法是,使用CREATE DATABASE语句
CREATE DATABASE db_name;
上述语句的先决条件是这个数据库是不能已经存在的,并且必须要拥有CREATE权限,CREATE DATABASE语句有几个可选子句,完整的语法如下:
CREATE DATABASE [IF NOT EXISTS] db_name
[CHARACTER SET charset] [COLLATE collation];
加上IF NOT EXISTS子句,当创建一个已经存在的数据库时,不会报错,如下
CREATE DATABASE IF NOT EXISTS db_name;
在默认情况下,服务器的字符集和排序规则将成为新建数据库的默认字符集和排序规则,使用完整的语句创建如下
CREATE DATABASE IF NOT EXISTS db_name CHARACTER set utf8 COLLATE utf8_icelandic_ci;
删除数据库,如果你有DROP权限,那么你就能执行删除数据库
DROP DATABASE db_name;
更改数据库
ALTER DATABASE [IF NOT EXISTS] db_name
[CHARACTER SET charset] [COLLATE collation];
其和创建数据库是差不多的,只是CREATE换成了ALTER;
总结