导航

Mysql 语句

Posted on 2014-12-29 16:01  MatchBoxy  阅读(73)  评论(0)    收藏  举报

1、创建数据库

create database mydb;

create database if not exists mydb;

create database if not exists mydb default character set utf8;

2、删除数据库

drop database mydb;

drop database if exists mydb;

3、使用数据库

use mydb;

4、创建表

create table mytable(id int not null primary key, name varchar(20));

create table mytable(id int not null auto_increment primary key, name varchar(20)) auto_increment=1000;

create table if not exists mytable(id int not null primary key, name varchar(20));

(2) 创建带外键的表。创建table1、table2,其中table2中的rootid指向table1的id,即table1的主键id为table2的外键rootid。其中的on delete cascade表示,如果外键对应的数据被删除了,那么就将所关联的数据也删除。

CREATE TABLE `table1` (
    `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
    `data` VARCHAR(100) NOT NULL DEFAULT '',
    PRIMARY KEY (`id`)
);

CREATE TABLE `table2` (
    `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
    `rootid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
    `data` VARCHAR(100) NOT NULL DEFAULT '',
    PRIMARY KEY (`id`),
    INDEX (`rootid`),
    FOREIGN KEY (`rootid`)
        REFERENCES `table1` (`id`)
        ON DELETE CASCADE
);

向table1中插入数据:

---1,"data1"

---2,"data2"

---3,"data3"

向table2中插入数据:

---1,1,"test data1 for 1"

---2,1,"test data2 for 1"

---3,2,"test data1 for 2"

---4,2,"test data2 for 2"

---5,3,"test data1 for 3"

---6,3,"test data2 for 3"

然后删除table1中的第二项数据,那么table2中的第三四行数据也跟着被删除了。

5、修改表

alter table tabname ...

6、删除表

drop table if exists mytable;

7、插入数据

insert into mytable(id, name) values(10, 'tom');

insert into mytable(name) values('cat');

insert into mytable(name) values('mike');

insert into mytable(id, name) select 9, 'match' from dual where not exists (select * from mytable where id=9);

insert into mytable(id, name) select v_id, v_name from suppliers where not exists (select * from mytable where mytable.id=
suppliers.v_id);

注:第二三条语句适用于 id 自增长的场合,否则会报错。第四条语句插入一条数据,第五条语句插入多条信息(判断冗余)。

8、删除数据

delete from mytable where name='cat';
 
delete from mytable;

9、修改数据

update mytable set name='change' where id=1001;

10、查找数据

select * from mytable where name='mike';

11、查找 m-n 个, mysql 没有 top 的关键字,用 limit 来限定,从 0 开始。

select * from mytable where name='mike' order by `time` desc limit 0,10;

12、(求和、总数、平均、最大、最小)(排序)(内外连接)(包含)(存在)(分组)(等等。。。)