mysql単一テーブル操作

7503 ワード

	
1.     :
	
	    :     	goods
	   :	utf8 -- UTF-8 Unicode
	    :	utf8_general_ci
	     (     ):	CREATE DATABASE goods;

2.     : 	DROP DATABASE goods;
	
3.   
CREATE TABLE employee(
	dept VARCHAR(50),
	sno VARCHAR(50),
	NAME VARCHAR(50),
	age INT,
	gender CHAR(2),
	entry_time DATE	
)

3.1      
   student (sno,sname)
   course (cno,cname)
   sc (sno,cno,score)
    sno,cno      sno,   cno   

        

sql      :
ALTER TABLE tb_active ADD CONSTRAINT FK_ID FOREIGN KEY(user_id) REFERENCES tb_user(id)
user_id  id   
ALTER TABLE sc ADD CONSTRAINT FK_ID FOREIGN KEY(sno) REFERENCES student(sno)
    sno    sno    
ALTER TABLE sc ADD CONSTRAINT FK_ID2 FOREIGN KEY(cno) REFERENCES course(cno)

4..   : DROP TABLE  

5.    
INSERT INTO employee
	(dept,sno,NAME,age,gender,entry_time)
	VALUES
	('     ','100010','  ',25,' ','2008/04/01');

6.    
DELETE FROM employee
	WHERE NAME='  ';

7.    
UPDATE employee
	SET dept='   ',age=20
	WHERE NAME='  ';

8.    
SLEECT         :
		
		SELECT     
		FROM   
		[WHERE      1]
		[GROUP BY    1] [HAVING      2]
		[ORDER BY    2[ASC|DESC]]
		
		'    '            ;
		'  '          ,      ;
		'     1'        ;

		GROUP BY:'   1'               ;
		ORDER BY:'   2'               

		'ASC'          ,    ;(    )
		'DESC'            。(    )
		GROUP BY     COUNT()、SUM()         。







    :
CREATE TABLE employee(
			num INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
			d_id INT NULL,
			name VARCHAR(20),
			age INT,
			gender VARCHAR(4),
			homeaddr VARCHAR(50)
		)



1.      	
	SELECT num, d_id, name, age, gender, homeaddr FROM employee;
	SELECT * FROM employee;
2.      
	SELECT num, name, gender, homeaddr FROM employee;
3.       
SELECT * FROM employee WHERE d_id=1001;
4. IN      
IN                      。
      :
				[NOT] IN(  1,   2,...,  n)
				    	      
				  		=, , >=, !=, <>, !>, !<
				    	BETWEEN AND, NOT BETWEEN AND
				    	IN, NOT IN
				    	LIKE, NOT LIKE
				     	IS NULL, IS NOT NULL
				      	AND, OR

(1)  IN     。
				SELECT * FROM employee WHERE d_id IN(1001,1004);
		(2)  NOT IN     ,             。
				SELECT * FROM employee WHERE name NOT IN('  ','  ');

5. BETWEEN AND     
BETWEEN AND                      
      :
				[NOT] BETWEEN   1 AND   2
(1)  BETWEEN AND       ,     age     15 25。
				SELECT * FROM employee WHERE age BETWEEN 15 AND 25;
(2)  NOT BETWEEN AND     employee 。     age    	   15 25  。
				SELECT * FROM employee WHERE age NOT BETWEEN 15 AND 25;

6. LIKE       
LIKE              
      :
				[NOT] LIKE '   '
			
			SELECT * FROM employee WHERE name LIKE ' ';
			SELECT * FROM employee WHERE homeaddr LIKE '  %';
			SELECT * FROM employee WHERE homeaddr LIKE '% ';

7.    
IS NULL                   (NULL)
      :
				IS [NOT] NULL
		  ,'NOT'     ,  NOT             。
CREATE TABLE work(
				id INT,
				name VARCHAR(20),
				gender VARCHAR(4),
				info VARCHAR(50)
				)
SELECT * FROM work WHERE info IS NULL;
		SELECT * FROM work WHERE info IS NOT NULL;


8. AND      
AND                 
                ,          
      :
				
			     1 AND      2 [... AND      n]
			  ,AND           。	
			SELECT * FROM employee 
			WHERE d_id<1004
			AND gender LIKE ' ';

9. LIMIT         
                 ,              
                     。
SELECT * FROM employee LIMIT 2;
		SELECT * FROM employee LIMIT 2, 2;

10.                
    '^'                 
CREATE TABLE info(
				id INT,
				name VARCHAR(20)
			)
INSERT INTO info VALUES(1, 'Aric');
			INSERT INTO info VALUES(2, 'Eric');
			INSERT INTO info VALUES(3, 'Jame');
			INSERT INTO info VALUES(4, 'Jack');
			INSERT INTO info VALUES(5, 'Lucy');
		INSERT INTO info VALUES(6, 'Lily')
INSERT INTO info VALUES(7, 'Tom');
			INSERT INTO info VALUES(8, 'aaa');
			INSERT INTO info VALUES(9, 'dadaaa');
			INSERT INTO info VALUES(10, '2323');
			INSERT INTO info VALUES(11, 'bbdfec12');
			INSERT INTO info VALUES(12, '212abc');
			INSERT INTO info VALUES(13, 'werabc');
			SELECT * FROM info WHERE name REGEXP '^L';
			SELECT * FROM info WHERE name REGEXP '^aaa';

		SELECT * FROM info WHERE name REGEXP '^L';
		SELECT * FROM info WHERE name REGEXP '^aaa';

11.                
SELECT * FROM info WHERE name REGEXP 'c$';
		SELECT * FROM info WHERE name REGEXP 'aaa$';
	

12.   '.'            
SELECT * FROM info WHERE name REGEXP '^L..y$'
13.            
     ([])                。         	       ,          。  ,  "[abc]"     	 a、b、c             。
			SELECT * FROM info WHERE name REGEXP '[ceo]';
			SELECT * FROM info WHERE name REGEXP '[0-9]';

14.           
  '[^    ]'             。 info       	 a w             。
				
		SELECT * FROM info WHERE name REGEXP '[^a-w0-9]';

15.       
            。              ,     	      。          ,     '|'  。     	            。
		SELECT * FROM info WHERE name REGEXP 'ic';
		SELECT * FROM info WHERE name REGEXP 'ic|ab|uc';

16.  '*' '+'       
      ,'*' '+'               。
  ,'+'  	      , '*'        。
			SELECT * FROM info WHERE name REGEXP 'a*c';
		SELECT * FROM info WHERE name REGEXP 'a+c';
17.   {M}  {M,N}             
      ,'   {M}'         M ;
'   {M,N}'            M ,  N 
'ab{2}'     'ab'      。'
ab{2,4}'     'ab'        ,    
SELECT * FROM info WHERE name REGEXP 'a{3}';
		SELECT * FROM info WHERE name REGEXP 'ab{1,3}';





        
      COUNT()、SUM()、AVG()、MAX() MIN()。

COUNT()         ;
SUM()           ;
AVG()            ;
MAX()          ;
MIN()          。	

1. COUNT  
	COUNT()           。     employee        ,    COUNT()  。     employee         ,     COUNT()  。 
			
			SELECT COUNT(*) FROM employee;
			SELECT d_id, COUNT(*) from employee GROUP BY d_id;
2 .SUM()  
	SUM()       。  SUM()                 。  ,   SUM()          。

			CREATE TABLE grade(
				num INT NOT NULL,
				course VARCHAR(10) NOT NULL,
				score FLOAT
			) 
			INSERT INTO grade VALUES
			(1001, '  ', 80),
			(1001, '  ', 90),
			(1001, '  ', 85),
			(1001, '   ', 95),
			
			(1002, '  ', 88),
			(1002, '  ', 90),
			(1002, '  ', 89),
			(1002, '   ', 90),
			(1003, '  ', 80),
			(1003, '  ', 98),
			(1003, '  ', 85),
			(1003, '   ', 95);

			SELECT * FROM grade WHERE num=1001;
			SELECT num, SUM(score) FROM grade WHERE num=1001;
			SELECT num, SUM(score) FROM grade GROUP BY num;
3. AVG()  
	AVG()          。  AVG()                  。  ,   AVG()        ,     AVG()           。
			SELECT AVG(age) FROM employee;
			SELECT course, AVG(score) FROM grade GROUP BY course; 
			SELECT num, AVG(score) FROM grade GROUP BY num;
4 .MAX()  
	MAX()          。  MAX()                  。  ,   MAX()         ,     MAX()           。

			SELECT MAX(age) FROM employee; 
			SELECT num, course, MAX(score) FROM grade GROUP BY course;
5 .MIN()  
	MIN()          。  MIN()                  。  ,   MIN()         ,     MIN()           。
			SELECT MIN(age) FROM employee; 
			SELECT num, course, MIN(score) FROM grade GROUP BY course;