CREATE TABLE table_name (column_name column_type);
建立实例
CREATE TABLE IF NOT EXISTS `courses`( `cid` INT UNSIGNED AUTO_INCREMENT, `student_name` VARCHAR(40) NOT NULL, `course_name` VARCHAR(40) NOT NULL, PRIMARY KEY (`cid`) )ENGINE = INNODB DEFAULT CHARSET= utf8;
html
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
INSERT INTO salary(s_name,s_sex,salary) VALUES("张三","m",2500);
DROP TABLE table_name ;
DROP TABLE table_name ;
truncate table student;
delete from student where T_name = "张三";
修改列名mysql
修改表中数据sql
删除行数据库
删除列code
新建列htm
新建行blog
INNER JOINci
LEFT JOIN字符串
CROSS JOINget
自链接
UNION
以上几种方式的区别和联系
CREATE TABLE IF NOT EXISTS `courses`( `cid` INT UNSIGNED AUTO_INCREMENT, `student_name` VARCHAR(40) NOT NULL, `course_name` VARCHAR(40) NOT NULL, PRIMARY KEY (`cid`) )ENGINE = INNODB DEFAULT CHARSET= utf8;
插入数据 :
INSERT INTO courses(student_name,course_name) VALUES("张三","math"); INSERT INTO courses(student_name,course_name) VALUES("李四","English"); INSERT INTO courses(student_name,course_name) VALUES("王五","math"); INSERT INTO courses(student_name,course_name) VALUES("赵六","Biology"); INSERT INTO courses(student_name,course_name) VALUES("五天","math"); INSERT INTO courses(student_name,course_name) VALUES("刘八","math"); INSERT INTO courses(student_name,course_name) VALUES("孙慧","math"); INSERT INTO courses(student_name,course_name) VALUES("王伟","Computer"); INSERT INTO courses(student_name,course_name) VALUES("郑一","math"); INSERT INTO courses(student_name,course_name) VALUES("陈二","math"); INSERT INTO courses(student_name,course_name) VALUES("张一","Computer"); INSERT INTO courses(student_name,course_name) VALUES("张七","math"); INSERT INTO courses(student_name,course_name) VALUES("周天","English");
编写一个 SQL 查询,列出全部超过或等于5名学生的课,同一个学生不被重复计算。
SELECT course_name FROM (SELECT DISTINCT student_name,course_name from courses) aaa GROUP BY course_name HAVING COUNT(course_name)>5;
结果如图:
CREATE TABLE IF NOT EXISTS `salary`( `sid` INT UNSIGNED AUTO_INCREMENT, `s_name` VARCHAR(40) NOT NULL, `s_sex` VARCHAR(2) NOT NULL, `salary` INT NOT NULL, PRIMARY KEY (`sid`) )ENGINE = INNODB DEFAULT CHARSET= utf8;
插入数据:
INSERT INTO salary(s_name,s_sex,salary) VALUES("张三","m",2500); INSERT INTO salary(s_name,s_sex,salary) VALUES("李四","f",1500); INSERT INTO salary(s_name,s_sex,salary) VALUES("王五","m",5500); INSERT INTO salary(s_name,s_sex,salary) VALUES("赵六","f",500); INSERT INTO salary(s_name,s_sex,salary) VALUES("吴八","m",3500);
交换全部的 f 和 m 值:
UPDATE salary SET s_sex =IF(s_sex ="m","f","m");
CREATE TABLE IF NOT EXISTS `person`( `person_id` INT UNSIGNED AUTO_INCREMENT, `first_name` VARCHAR(40) NOT NULL, `last_name` VARCHAR(40) NOT NULL, PRIMARY KEY(`person_id`) )ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `address`( `address_id` INT UNSIGNED AUTO_INCREMENT, `person_id` INT UNSIGNED NOT NULL, `city` VARCHAR(40) NOT NULL, `state` VARCHAR(40) NOT NULL, PRIMARY KEY(`address_id`), FOREIGN KEY(`person_id`) REFERENCES person(`person_id`) )ENGINE=INNODB DEFAULT CHARSET=utf8;
插入数据:
INSERT INTO person(first_name,last_name) VALUES("jack","chen"); INSERT INTO person(first_name,last_name) VALUES("tom","wang"); INSERT INTO person(first_name,last_name) VALUES("cat","zhang"); INSERT INTO person(first_name,last_name) VALUES("joy","chen");
INSERT INTO address(person_id,city,state) VALUES(1,"hubei","wuhan"); INSERT INTO address(person_id,city,state) VALUES(2,"hunan","changsha"); INSERT INTO address(person_id,city,state) VALUES(3,"sanxi","san"); INSERT INTO address(person_id,city,state) VALUES(4,"beijing","canpin");
编写一个 SQL 查询,知足条件:不管 person 是否有地址信息,都须要基于上述两表提供 person 的如下信息:FirstName, LastName, City, State:
SELECT p.person_id,p.last_name,p.first_name,a.city,a.state from person p LEFT JOIN address a on p.person_id =a.person_id;
DELETE FROM email where ID NOT IN ( SELECT minid FROM( SELECT MIN(ID) as minid FROM email GROUP BY email) b );