[关闭]
@jaiminc 2015-07-19T16:02:55.000000Z 字数 1719 阅读 1634

MySQL笔记(一)

MySQL

一、MySQL概述

SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。

语法特性

SQL示例

  1. select cust_id,fname
  2. from individual
  3. where lname='Smith';

该查询搜索individual表,以找到所有lname列匹配字符串‘Smith’的行,并返回这些行中的cust_id和fname列。

  1. insert into product(product_cd,name)
  2. values('CD','certificate of depysit');

在表中插入新行(其中depysit有错)

  1. update product
  2. set name = 'certificate of deposit'
  3. where product_cd = 'CD';

更新信息


二、创建和使用数据库

2.1 创建MySQL数据库(windows下)

登录MySQL:

  1. mysql -u root -p;

创建示例数据库:

  1. create database bank;

创建访问用户guest,赋予bank数据库的权限:

  1. grant all privileges on bank.* to 'guest'@'localhost' identified by 'xyz';
  2. /*guest为用户名,xyz为密码*/

退出MySQL工具包并以guest登录:

  1. quit;
  2. mysql -u guest -p;

关联bank数据库:

  1. use bank;

2.2 MySQL命令行工具

同时指定用户名以及数据库:

  1. mysql -u guest -p bank

查询当前时间:

  1. mysql> select now();

某些数据库服务器规定查询语句必须包含from字句并至少指明一个表名(比如Orcale),则要利用dual表:

  1. mysql> select now()
  2. from dual;

2.3 数据类型

SQL通常只涉及字符型、数值型、日期型。
字符型:
(文本数据)
- tinytext (max=255)
- text
- mediumtext
- longtext

数值型:
- tinyint (max=255)
- smallint (max=65535)
- mediumint (max=16M)
- int (max=4G)
- bigint

时间型:
- data
- datatime
- timestamp
- year
- time

2.4 表的创建

2.4.1 设计

2.4.2 精化

应该利用保证唯一性的数据作为主键
复合对象应该被拆分(如地址信息)
适当单独列表,用主键和外键相联系

2.4.3 构建SQL语句

基本构建语句:

  1. create table person
  2. (person_id smallint unsigned,
  3. fname varchar(20),
  4. lname varchar(20),
  5. ......
  6. postal_code varchar(20),
  7. constraint pk_person primary key (person_id)/*定义主键*/
  8. );

最后一句即为主键约束,它被创建在person_id列上,并被命名为pk_person

关于约束:gender只接受‘M’或者‘F’。MySQL允许在定义列时关联一个检查约束,如

  1. gender char(1) check (gender in ('M','F')),

MySQL提供了将检查约束与数据类型定义融合到一起的字符数据类型enum:

  1. gender enum('M','F'),

检查表的定义:desc <表名>

2.5 操作与修改表

2.5.1 插入数据

insert语句:

  1. insert into person
  2. (person_id,fname,lname,gender,birth_date)
  3. values(null,'William','Turner','M','1972-05-27');

2.5.2 更新数据

update语句:

  1. update person
  2. set city= 'Boston'
  3. country='USA'
  4. where person_id = 1;

2.5.3 删除数据

delete语句:

  1. delete from person
  2. where person_id = 2;

drop语句(删除表):

  1. drop table <table_name>

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注