MySQl语句

1.查询
 
(1)查询存在的数据库
 
  show databases;
 
  选择所要的某个数据库  use databasename;
 
(2)查询当前数据库存在的所有的表
 
  show tables;
 
(3)查询表结构
 
  describe tablename;
 
(4)查询表格列的属性
 
  show columns from tableName;
 
(5)查询记录
 
  select name from tablename where id=xxx;
 
(6)查询当前时间
 
  select now();
 
  select current_time;
 
(7)查询当前日期
 
  select current_date;
 
(8)查询当前用户
 
  select user();
 
(9)查询数据库版本
 
  select version();
 
(10)查询当前使用的数据库
 
  select database();
 
(11)查询当前服务器支持哪个存储引擎
 
  show engines;

(12)查看建表的sql语句

show create table table_name\g;  //大小写均可

 

2.创建
 
(1)创建数据库
 
  create database databasename;
 
  create database DATABASE_NAME default character set utf8;
 
(2)创建一张表
 
  create table tablename (name VARCHAR(20), sex CHAR(1));
 
  create table if not exists students(……);           //创建表是先判断表是否存在
 
(3)创建临时表:(建立临时表linshi)
 
  create temporary table linshi(name varchar(10));
 
(4)从已经有的表table1中复制表的结构到表table2
 
  create table table2 select * from table1 where 1<>1; //只复制表结构
 
  create table table2 select * from table1;          //复制表结构和表中的数据
 
(5)往表中links加入记录
 
  insert into links(name,url) values('xiaoxiaozi','http://www.xiaoxiaozi.com');
 
  insert into links set name='xiaoxiaozi',url='http://www.xiaoxiaozi.com';


3.修改
 
(1)对表重新命名
 
  alter table tablename1 rename as tablename2;
 
(2)修改列的类型
 
  alter table tablename modify id int unsigned;     //修改列id的类型为int unsigned
 
  alter table tablename change id sid int unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned

 

(3)在一个已经建好的表中添加一列,可以用诸如:

alter table t1 add column addr varchar(20) not null;//这条语句会向已有的表t1中加入一列

 

alter table t1 add column addr varchar(20) not null after user1; //注意,上面这个命令的意思是说添加addr列到user1这一列后面。

 

alter table t1 add column addr varchar(20) not null first;//添加到第一列的话

 

(4)修改列名

 

alter table table_name change old_name new_name integer;

 

(5)建表时忘设主键,怎么弥补?

 

alter table pay_order change p_order p_order varchar(10) primary key;

 

(6)增加外键

 

alter table 表名 add foreign key(pubid) references pub_com(id) on delete restrict on update restrict;

 

(7)更新表中数据
 
  update tablename set sex='f' where name='john';


(7)更新表中数据一次更新多个
 
  update tablename set sex='f',gender='g' where name='john';

 

4.删除
 
(1)删除某个数据库
 
  drop database databasename;        //删除数据库前,没有提示
 
  mysqladmin drop databasename;   //删除数据库前,有提示
 
(2)删除某张表
 
  drop table tablename;
 
(3)清空某张表
 
  delete from tablename;
 
(4)删除符合条件的某些记录
 
  delete from tablename where id=xxx;
 
(5)删除授权:
 
  revoke all privileges on *.* from
root@”%”;
 
  delete from user where user=”root” and host=”%”;
 
  flush privileges;             //刷新数据库

 

(6)删除外键:

 

ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;

 

(7)删除列

 

alter table table_name drop column_name; //删除表列

 

5.备份
 
(1)备份数据库:(将数据库test备份)
 
  mysqldump -u root -p test>c:\test.txt
 
(2)备份表格:(备份test数据库下的mytable表格)
 
  mysqldump -u root -p test mytable>c:\test.txt
 
(3)将备份数据导入到数据库:(导回test数据库)
 
  mysql -u root -p test<c:\test.txt

 

6、应用案例:

 

CREATE TABLE person (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    name CHAR(60) NOT NULL,
    PRIMARY KEY (id)
);
 
CREATE TABLE shirt (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
    color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
    owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),
    PRIMARY KEY (id)
);


CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,
                      price DECIMAL,
                     PRIMARY KEY(category, id)
) TYPE=INNODB;

 

CREATE TABLE customer (id INT NOT NULL,
                      PRIMARY KEY (id)
) TYPE=INNODB;

 

CREATE TABLE product_order (no INT NOT NULL  AUTO_INCREMENT,            product_category INT NOT NULL,
                           product_id INT NOT NULL,
                          customer_id INT NOT NULL,
                           PRIMARY KEY(no),
                           INDEX (product_category, product_id),
                           FOREIGN KEY (product_category, product_id) REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT,
                          INDEX (customer_id),
                           FOREIGN KEY (customer_id)
                           REFERENCES customer(id)
) TYPE=INNODB;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值