Heim >Datenbank >MySQL-Tutorial >经验总结:mysql 的一些基本应用_MySQL

经验总结:mysql 的一些基本应用_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 14:00:10973Durchsuche

基本查询
SELECT语句用于查询数据库和SQL中的所有输出操作。
SELECT c_u_name, email FROM cooya_users;
输出cooya_users表中所有行(或记录)的属性c_u_name和email的值。
如果需要所有属性,可以使用星号(*)的快捷方式。
SELECT * FROM cooya_users;
SELECT语句还可以输出不是数据库中的数据及可以用作简单的计算符。
SELECT curtime();
SELECT log(100)*4*pi();

WHERE子句
WHERE子句用作多数SELECT查询的一部分,它局限于检索匹配条件的行。
SELECT * FROM cooya_users WHERE c_u_id 复杂一些的WHERE子句使用布尔操作符AND和OR,以及函数。
SELECT * FROM cooya_users WHERE c_u_name = 'melon' AND email='melon.cooya@gamil.com';
这将检索同时匹配两个条件的行。
SELECT c_u_id FROM cooya_users WHERE (c_u_name = 'melon' AND city LIKE 'shang%') OR email='melon.cooya@gmail.com';
这将查找c_u_name为melon且city以s打头的行,或者电子邮件地址为melon.cooya@gmail.com的顾客。
WHERE子句也是UPDATE和DELECT语句的常见组件。
UPDATE cooya_users SET c_u_name = 'cooya1' WHERE c_u_id = 2;
DELETE FROM cooya_users WHERE c_u_id = 2;

对输出排序和归组
ORDER BY
SELECT c_u_name FROM cooya_users WHERE gender='female' AND city='shanghai' ORDER BY c_u_name;
默认情况下,ORDER BY子句以升序(或ASC)排序。要以降序排序,可以使用DESC。
SELECT * FROM cooya_users WHERE city = 'shanghai' ORDER BY c_u_id DESC;
GROUP BY
GROUP BY子句与ORDER BY不同,因为它不为输出排序数据。相反,它在查询过程中就对数据进行排序,目的是为了归组或聚合。
SELECT city, COUNT(*) FROM cooya_users GROUP BY city;
该查询输出已排序的一列城市,以及居住在每个城市的顾客数COUNT。COUNT(*) FROM的作用是对每一组的行数进行计数。

DML(Data Manipulation Language,数据操纵语言)包含了所有用于操纵数据的SQL语句。下面4个语句形成DML语句集合:SELECT、INSERT、DELETE和UPDATE。本节先描述后3个语句。

插入数据
方法一:
INSERT INTO cooya_users VALUES (NULL, 'melon', 'female', 'melon.cooya@gmail.com', ' ');
方法二:
INSERT INTO cooya_users
SET c_u_name = 'cooya',
gender = 'female',
email = 'melon.cooya@gmail.com';

删除数据
SQL中的撤销和删除有很大区别。DROP用于删除表或数据库,而DELETE用于删除数据。
DELETE FROM cooya_users;
删除cooya_users表中的所有数据,但是不删除表。相反,撤销表将删除数据和表。
带WHERE子句的DELETE语句可以删除特定的行。
DELETE FROM cooya_users WHERE c_u_id = 1;

更新数据
可以使用与INSERT语句类似的语法更新数据。
UPDATE cooya_users SET email = lower(email);
UPDATE语句也常与WHERE子句一起使用。
UPDATE cooya_users SET city = 'shanghai' WHERE c_u_id = 1;

创建数据库:
mysql> CREATE DATABASE dbname;
为了处理数据库,命令解释器需要用户在能够发布SQL语句之前使用数据库。在MySql解释器中可以发布以下命令:
mysql> use dbname
以下省略命令例子的mysql>提示符。

创建表格:
CREATE TABLE cooya_users (
c_u_id int(5) default '0' not null auto_increment,
c_u_name varchar(20) not null,
gender varchar(10) not null,
email varchar(30) not null,
city varchar(20),
PRIMARY KEY (c_u_id),
KEY names (c_u_name)
);
CREATE TABLE语句有3个部分:
在CREATE TABLE语句后面是一个自由形式的表名称------在本例是cooya_users。
开始圆括号后面是一个属性名、类型、和修饰字的列表。
属性列表后面是一列键,也就是定义哪些属性满足主键的唯一性约束,以及哪些属性将为了快速访问而加以索引。
更改表和索引:
添加索引:
ALTER TABLE cooya_users ADD INDEX cities (city);
删除索引:
ALTER TABLE cooya_users DROP INDEX cities;
用show显示数据库结构

 

SHOW DATABASES
 列出 My SQL DBMS 可访问的数据库。

SHOW TABLES
 显示已用 use 命令选定的数据库中的表。

SHOW COLUMNS FROM tablename
 显示属性、属性的类型、键信息、是否允许NULL、默认值,以及表的其他信息。
 例如:
  SHOW COLUMNS FROM customer
 显示 customer 表的属性信息。DESCRIBE table 产生相同的输出。

SHOW INDEX FROM tablename
 展示表中所有索引的详细信息,包括 PRIMARY KEY。
 例如:
  SHOW INDEX FROM customer
 显示有两个索引,即主索引和 names 索引。

SHOW STATUS
 报告 MYSQL DBMS 性能和统计的详细信息。

MySQL的转义字符“/”
MySQL识别下列转义字符:

/0
一个ASCII 0 (NUL)字符。
/n
一个新行符。
/t
一个定位符。
/r
一个回车符。
/b
一个退格符。
/'
一个单引号(“'”)符。
/ "
一个双引号(“ "”)符。
//
一个反斜线(“/”)符。
/%
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
/_ 一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意,如果你在某些正文环境中使用“/%”或“/%_”,这些将返回字符串“/%”和“/_”而不是“%”和“_”。

★★
有几种方法在一个字符串内包括引号:
1、必须转义的:
一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。
一个字符串用双引号“ "”来引用的,该字符串中的“ "”字符可以用“ " "”方式转义。
同时你也可以继续使用一个转义字符“/”来转义
2、可不转义的:
一个字符串用双引号“ "”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“ "”不需要特殊对待而且不必被重复或转义。

下面显示的SELECT演示引号和转义如何工作:

mysql > SELECT 'hello', ' "hello "', ' " "hello " "', 'hel''lo', '/'hello';
+----------+--------------+-------------------+----------+---------+
| hello | "hello " | " "hello " " | hel'lo | 'hello |
+----------+--------------+-------------------+----------+---------+

mysql > SELECT "hello ", "'hello' ", "''hello'' ", "hel " "lo ", "/ "hello ";
+----------+----------+-----------+------------+-----------+
| hello | 'hello' | ''hello'' | hel "lo | "hello |
+---------+-----------+-----------+------------+-----------+

mysql > SELECT "This/nIs/nFour/nlines ";
+--------------------+
| This
Is
Four
lines |
+--------------------+

★★
如果你想要把二进制数据插入到一个BLOB列,下列字符必须由转义序列表示:

NUL
ASCII 0。你应该用'/0'(一个反斜线和一个ASCII '0')表示它。
/
ASCII 92,反斜线。用'//'表示。
'
ASCII 39,单引号。用“/'”表示。
"
ASCII 34,双引号。用“/ "”表示

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn