您的位置:首页 > 数据库 > MySQL

MySQL —— 常用语句

2015-06-26 13:24 661 查看
1、清空表中所有记录

TRUNCATE TABLE 表名;


2、删除表中某项记录

DELETE FROM 表名 WHERE 条件;


3、实现id自增长

AUTO_INCREMENT
//默认从1开始增长
()AUTO_INCREMENT=1  CHARSET=utf8;


CREATE TABLE man(
id int(16) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(20),
did int(16),
FOREIGN KEY (did) REFERENCES department(did)
)AUTO_INCREMENT=1;


每当插入一条记录,即使不为id赋值,这条记录都会分配一个id,即使前面的记录删除了,这条记录的id也不会变

4、外键

FOREIGN KEY (tid) REFERENCES teacher(tid)


5、开启、关闭服务器

service mysqld start
service mysqld stop


6、

int(20)中20的涵义

7、对结果集排序

升序

SELECT * FROM man,department WHERE man.did = department.did ORDER BY department.did;


降序

SELECT * FROM man,department WHERE man.did = department.did ORDER BY department.did DESC;


8、自联接的一道题

题目:有两个表,一个是boy,另一个是girl,girl的表相比于boy的多了一个字段是boyfriend id(即对应boy的id),问如何找到有女朋友的boy,让它显示出来 进一步解释这个题:就好比boy有三个记录,A,B,C 而girl中有两条记录a,b她们的男朋友对应的分别是A,B。最后的输出结果就是A,B(因为C没有女朋友)

SELECT boy.name FROM boy,girl WHERE girl.bid = boy.id;


但是可能会出现一种情况,就是一个boy有多个女朋友,这里就需要用到GROUP BY或者DISTINCT

SELECT boy.name FROM boy,girl WHERE girl.bid = boy.id GROUP BY boy.name;

SELECT DISTINCT boy.name FROM boy,girl WHERE girl.bid = boy.id;


9、多行子查询

*一般先写子查询再写子查询,承接上题,找出有女朋友的男生所在的部门名称和部门编号

先写子查询 ,得出有女朋友的男生的部门id*

SELECT DISTINCT boy.did FROM boy,girl WHERE girl.bid = boy.id;


再写子查询的基础上写主查询

SELECT * FROM department WHERE did in (SELECT DISTINCT boy.did FROM boy,girl WHERE girl.bid = boy.id)


10、linux下安装mysql

apt-get install mysql-server


11、mysql命令

1、连接
mysql -uroot -p;
如果用mysql -root -p 然后操作会报错
Ignoring query to other database;
2、将sql导入数据库中
mysqldump -u 用户名 -p 数据库名 > sql脚本的位置;
3、显示数据库
show databse;
4、显示表
use 数据库名
show tables;
5、创建数据库
create database 库名 (不加“”或‘’)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: