您的位置:首页 > 数据库

SQL学习笔记 第1次

2013-04-10 17:36 253 查看
1、SQL 是用于访问和处理数据库的标准的计算机语言,可以用来访问Oracle, Sybase, SQL Server, DB2, Access 等等。

2、要创建发布数据库中数据的网站,您需要以下要素:

a.RDBMS 数据库程序(比如 MS Access, SQL Server, MySQL)

b.服务器端脚本语言(比如 PHP 或 ASP)

c.SQL

d.HTML / CSS

3、SQL语句对大小写不敏感,语句间用";"号隔开。

4、SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据

UPDATE - 更新数据库表中的数据

DELETE - 从数据库表中删除数据

INSERT INTO - 向数据库表中插入数据

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

5、SELECT:用于查询

SELECT 列名称 FROM 表名称

例如:

SELECT LastName,FirstName FROM Persons

使用*可以代表所有列

测试用person表,首先需创建下面这样的一个表格,并插入3行数据。

Id

LastName

FirstName

Address

City

1

Adams

John

Oxford Street

London

2

Bush

George

Fifth Avenue

New York

3

Carter

Thomas

Changan Street

Beijing

这里我使用SQLyog+MYSQL进行练习:

CREATE TABLE person

(

LastName VARCHAR(255),

FirstName VARCHAR(255),

Address VARCHAR(255),

City VARCHAR(255)

);

/*创建一个表*/

数据类型

描述

integer(size)

int(size)

smallint(size)

tinyint(size)
仅容纳整数。在括号内规定数字的最大位数。

decimal(size,d)

numeric(size,d)
容纳带有小数的数字。

"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。

char(size)

容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。

在括号中规定字符串的长度。

varchar(size)

容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。

在括号中规定字符串的最大长度。

date(yyyymmdd)

容纳日期。

6、INSERT INTO插入语句

INSERT INTO 表名称 VALUES (值1, 值2,....)

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

继续上面的练习,插入3行数据:

INSERT INTO person VALUES ('Adams','John','Oxford Street','London');

INSERT INTO person VALUES ('Bush','George','Fifth Avenue','New York');

INSERT INTO person VALUES ('Carter','Thomas','Changan Street','Beijing');

不小心执行了两次,用删除语句删掉:

DELETE FROM person;

但这样不符合我的需求,我要如果有重复的数据,只保留1条,百度一下:

CREATE TABLE person2 as SELECT distinct * from person;

#基本思路就是利用distinct创张表,去除重复项

ALTER TABLE person RENAME TO person_old;

ALTER TABLE person2 RENAME TO person;

#改名,最好不要drop吧,新表万一有问题,还有原始表在

7、select中where接条件

SELECT * FROM persons WHERE City='Beijing';

#数字不用加上引号,字符要加。

SELECT * FROM person WHERE City='Beijing'AND FirstName='Thomas' AND LastName='Carter';

#用and和or连接多个条件。

操作符

描述

=

等于

<> 有些可以写成 !=

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

BETWEEN

在某个范围内

LIKE

搜索某种模式

8、update用于更新表的数据

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

UPDATE person set city='Shanghai' where city='Beijing' and FirstName='Thomas';

#更新数据。

9、现在想新增一列age

ALTER TABLE person add age date ;

ALTER TABLE person add age2 date ;

10、"一不小心"多增加了一列age2,而且"粗心"把age写成了date数据格式。

ALTER TABLE person DROP COLUMN age2;

#首先把age2列删除。。

ALTER TABLE person modify COLUMN age int(255);

#然后修改age的数据格式

11、为了证明他们还活着,新增一列alive,并设置默认值为alive,且只能为dead or alive

ALTER TABLE person add COLUMN alive char(100) DEFAULT 'alive' check(alive in ('alive','dead'));

#东拼西凑弄了这个语句,新增alive列,设置默认值,检查数据范围3合一

UPDATE person SET alive='deed' WHERE lastName='Adams';

#居然可以写进去。。。check不起作用,内牛满面。。。不知道为什么

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: