欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库基本操作

程序员文章站 2022-05-31 21:46:59
...

1.数据库

CREATE DATABASE DatabaseName;
#查看数据库
SQL> SHOW DATABASES;
#删除
DROP DATABASE DatabaseName;
#使用数据库
USE DatabaseName;

2.表操作

创建表

SQL> CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);
#展示表字段
SQL> DESC CUSTOMERS;

删除表

DROP(DELETE) TABLE table_name;

插入表

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)] 
VALUES (value1, value2, value3,...valueN);
#如
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) 
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );

用一个表填充另一个表:
可以通过使用select语句填充一个表的数据到另一个表中的字段,这是必需的,以填充第一个表。下面是语法:

INSERT INTO first_table_name [(column1, column2, ... columnN)] 
SELECT column1, column2, ...columnN FROM second_table_name 
[WHERE condition];

查询表

SELECT column1, column2, columnN FROM table_name;

WHERE子句不只是用在SELECT语句,它也用于UPDATE,DELETE等语句,我们将在以后的章节研究学习。

SELECT column1, column2, columnN FROM table_name
WHERE [condition]
#例子
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS
WHERE NAME = 'Hardik';

and和or

SELECT column1, column2, columnN FROM table_name
WHERE [condition1] AND [condition2]...AND [conditionN];
#例子
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS
WHERE SALARY > 2000 AND age < 25;
SELECT column1, column2, columnN FROM table_name
WHERE [condition1] OR [condition2]...OR [conditionN]
#例子
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS
WHERE SALARY > 2000 OR age < 25;

update表

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
#例子
SQL> UPDATE CUSTOMERS
SET ADDRESS = 'Pune', SALARY = 1000.00;

DELETE查询用来从表中删除现有的记录。

DELETE FROM table_name
WHERE [condition];
#删除某一个
SQL> DELETE FROM CUSTOMERS
WHERE ID = 6;
#删除所有记录
SQL> DELETE FROM CUSTOMERS;

like语句
(%)百分号代表零个,一个或多个字符。
(_)下划线表示单个数字或字符。所述符号可以在组合使用。

WHERE SALARY LIKE '200%'    查找以200开始的任何值
WHERE SALARY LIKE '%200%'   查找含有200的任何值
WHERE SALARY LIKE '_00%'    查找在第二和第三位置是00的任何值
WHERE SALARY LIKE '2_%_%'   查找开始2并且长度至少为3个字符的任何值
WHERE SALARY LIKE '%2'  查找以2结尾的任何值
WHERE SALARY LIKE '_2%3'    查找第二位置为2,并以3结束的任何值
WHERE SALARY LIKE '2___3'   查找以5位数字-开头为2,并3结束的任何值

SQL TOP子句用于从表中获取一个TOP N数字或X%的纪录。
注意: 不是所有的数据库都支持TOP子句。例如,MySQL使用LIMIT子句来获取记录;Oracle使用ROWNUM获取有限的记录数。

SELECT TOP number|percent column_name(s)
FROM table_name 
WHERE [condition]
#例子
SQL> SELECT TOP 3 * FROM CUSTOMERS;
#mysql
SQL> SELECT * FROM CUSTOMERSLIMIT 3;
#orace
SQL> SELECT * FROM CUSTOMERSWHERE ROWNUM <= 3;

SQL ORDER BY子句
用于按升序或降序排序数据在一列或多列的基础上。一些数据库默认排序查询结果按升序排列。

SELECT column-list FROM table_name
 [WHERE condition] 
[ORDER BY column1, column2, .. columnN] [ASC | DESC];

#下面是一个例子,将结果通过NAME和SALARY升序排序:
SQL> SELECT * FROM CUSTOMERS ORDER BY NAME, SALARY;

#获取使用自己的优先顺序行,SELECT查询将如下:
SQL> SELECT * FROM CUSTOMERS 
ORDER BY (CASE ADDRESS 
WHEN 'DELHI' THEN 1 
WHEN 'BHOPAL' THEN 2 
WHEN 'KOTA' THEN 3 
WHEN 'AHMADABAD' THEN 4 
WHEN 'MP' THEN 5 
ELSE 100 END)  ASC, ADDRESS DESC;

GROUP BY子句用于协同SELECT语句用来安排相同的数据分组。
GROUP BY子句在SELECT语句的WHERE子句之后并ORDER BY子句之前

SELECT column1, column2
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2
ORDER BY column1, column2
#如果你想知道每个客户的薪水的总额,使用GROUP BY查询如下所示
SQL> SELECT NAME, SUM(SALARY) FROM CUSTOMERS GROUP BY NAME;

SQL DISTINCT关键字与SELECT语句一起使用,以消除所有重复的记录和获取的唯一记录。
可能有一种情况,当你在一个表中多个重复的记录。 当获取这些记录,它获取的唯一记录更有意义,而不是获取重复记录。

SELECT DISTINCT column1, column2,.....columnN 
FROM table_name
WHERE [condition]
#SELECT查询返回重复的工资记录:
SQL> SELECT DISTINCT SALARY FROM CUSTOMERS 
ORDER BY SALARY;