MYSQL基本練習

4159 ワード

--  email  
CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255)
);
--    
INSERT INTO email(ID, Email)
VALUES ('1','[email protected]'),
       ('2','[email protected]'),
       ('3','[email protected]');
--   Email            。
select Email,count(*) as count from email group by Email having count>1;       
--       ,          Id       。
DELETE e1 FROM email e1,email e2 WHERE e1.Email = e2.Email AND e1.ID > e2.IdD
delete from email where ID not in (select minid from (select min(ID) as minid from email group by Email) b);
--  courses 
CREATE TABLE courses(
    student VARCHAR(255),
    class VARCHAR(255)
);
--    
INSERT INTO courses(student,class)
VALUES('A','Math'),('B','English'),('C','Math'),('D','Biology'),
      ('E','Math'),('F','Computer'),('G','Math'),('H','Math'),
      ('I','Math'),('A','Math');
--         5     ,              。
select class from courses group by class having count(distinct student) >= 5;
--             count
select class,count(distinct student) as count from courses group by class having count(distinct student)>=5; 
--  salary 
CREATE TABLE salary(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    sex VARCHAR(255),
    salary INT
); --AUTO_INCREMENT         ,      ,      1。
--         
INSERT INTO salary(name,sex,salary)
VALUES('A','m','2500'),('B','f','1500'),
      ('C','m','5500'),('D','f','5500');
--      f   m  (  ,    f      m,    )。          ,         。      
UPDATE salary set sex=case sex
    when 'm' then 'f'
    when 'f' then 'm'
end;   
--  cinema 
CREATE TABLE cinema(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    movie VARCHAR(255),
    description VARCHAR(255),
    rating FLOAT
); --AUTO_INCREMENT         ,      ,      1。
--    
INSERT INTO cinema(movie,description,rating)
VALUES('War','great 3D','8.9'),('Science','fiction','8.5'),
      ('irish','boring','6.2'),('Ice Song','Fantacy','8.2'),
      ('House card','interesting','9.1');
--           boring (   )     id        ,       rating   。
select * from cinema where description != 'boring' and id%2 = 1 ORDER BY rating DESC;
--  Person 
CREATE TABLE Person(
    Personid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(255),
    lastname VARCHAR(255)
);
--    
INSERT INTO Person(firstname,lastname)
VALUES('A','B'),('C','D'),('A','E');
-- --  Address 
CREATE TABLE Address(
    Addressid INT PRIMARY KEY,
    Personid INT,
    City VARCHAR(255),
    State VARCHAR(255)
);
--    
INSERT INTO Address(Addressid,Personid,City,State)
VALUES('123','3','Changsha','Hunan'),('456','4','Yueyang','Hunan'),
      ('124','5','Beijing','Beijing');
--:   person        ,            person      :FirstName, LastName, City, State
SELECT FirstName, LastName, City, State from Person left join Address on Address.PersonId  = Person.PersonId;
CREATE DATABASE IF NOT EXISTS data3 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use data3;
--  Customers  
CREATE TABLE Customers (
ID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255)
);
INSERT INTO Customers(Name)
VALUES('Joe'),('Henry'),('Sam'),('Max');
--  Orders  
CREATE TABLE Orders (
ID INT NOT NULL PRIMARY KEY,
CustomerId INT
);
INSERT INTO Orders(ID,CustomerId)
VALUES('1','3'),('2','1');
--               
SELECT Name from Customers left join Orders ON Orders.CustomerId = Customers.ID where Orders.ID is Null;