SQL学习笔记 第1次

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不起作用,内牛满面。。。不知道为什么

posted on 2013-04-10 17:36  百舸争流info  阅读(163)  评论(0编辑  收藏  举报

导航