Heim > Datenbank > MySQL-Tutorial > Hauptteil

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

黄舟
Freigeben: 2017-02-21 10:20:31
Original
1880 Leute haben es durchsucht



1. Benutzererstellung, Berechtigungen, Löschung

1

Verbinden: mysql -h Hostadresse -u Benutzername -p Benutzerkennwort (Hinweis: u und root benötigen keine Leerzeichen, das Gleiche gilt für andere)

Trennen: Beenden ( return Car)

Öffnen Sie cmd, geben Sie

mysql -h 127.0.0.1 -u root -p ein und geben Sie das Passwort ein. Sie können eine Verbindung zur lokalen MySQL-Datenbank herstellen.

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

2. Benutzer erstellen:

Befehl: CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Anleitung:

Benutzername – der Benutzername, den Sie erstellen werden,

Host – geben Sie den Host an, auf dem sich der Benutzer anmelden kann. Wenn es sich um einen lokalen Benutzer handelt, kann es sich um localhost handeln Wenn Sie möchten, kann sich der Benutzer von jedem Remote-Host aus anmelden und den Platzhalter % verwenden. Das Kennwort kann leer sein ohne Passwort zum Server.

Beispiel:

Verlassen Sie beim Anmelden zuerst das aktuelle und geben Sie dann Folgendes ein:
CREATE USER 'lin'@'localhost' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY ''; 
CREATE USER 'pig'@'%';
Nach dem Login kopieren

mysql -h 127.0.0.1 -u linlin -p 密码
mysql -h 127.0.0.1 -u pig -p 密码
Nach dem Login kopieren

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

3. Autorisierung:

Befehl: GRANT Privilegien ON Datenbankname.Tabellenname TO 'Benutzername'@'Host'

Beschreibung:

Berechtigungen – Betriebsberechtigungen des Benutzers, wie z. B. SELECT, INSERT, UPDATE usw. (Eine detaillierte Liste finden Sie am Ende dieses Artikels. Wenn Sie alle Berechtigungen erteilen möchten, verwenden Sie ALL.; Datenbankname – Datenbankname, Tabellenname - Tabellenname. Wenn Sie dem Benutzer entsprechende Betriebsberechtigungen für alle Datenbanken und Tabellen erteilen möchten, können Sie * Dargestellt verwenden, z. B. *.*.

Beispiel:

Hinweis : Benutzer, die mit dem obigen Befehl autorisiert wurden, können keine anderen Benutzer autorisieren, verwenden Sie den folgenden Befehl:
GRANT SELECT, INSERT ON school.* TO 'lin' @'%';
GRANT ALL ON *.* TO 'pig'@'%';
Nach dem Login kopieren

GRANT privileges ON databasename.tablename TO 'username'@'host'WITH GRANT OPTION;
Nach dem Login kopieren
Benutzerpasswort festlegen und ändern

Befehl: SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); wenn ja, verwendet der aktuell angemeldete Benutzer SET PASSWORD = PASSWORD("newpassword");

Beispiel: SET PASSWORD FOR 'lin'@'%' = PASSWORD("123456");

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

5. Benutzerrechte widerrufen

Befehl: REVOKE Privileg ON Datenbankname.Tabellenname FROM 'Benutzername'@'Host';

Anweisungen: Privileg, Datenbankname, Tabellenname – dasselbe wie Autorisierungsteil.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

6、删除用户

命令: DROP USER 'username'@'host';

二、数据库与表显示、创建、删除

1、数据库显示、创建、删除

显示数据库:show databases;

创建库:create database 库名;

删除库:drop database 库名;

使用库(选中库):use 库名;

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

2、表显示、创建、删除

显示数据表:show tables; (要先用use 数据库名选定数据库)

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

显示表结构:describe 表名;或者desc 表名

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

创建表:create table 表名 (字段设定列表);

CR EATE TABLE
USER
(
name VARCHAR(30) NOT NULL,
id INT DEFAULT '0' NOT NULL,
stu_id INT,
phone VARCHAR(20),
address VARCHAR(30) NOT NULL,
age INT(4) NOT NULL,
PRIMARY KEY (name),
CONSTRAINT stu_id UNIQUE (stu_id)
)
ENGINE=InnoDB D EFAULT CHARSET=utf8;
Nach dem Login kopieren

删除表:drop table 表名;

句法:DROP DATABASE [IF EXISTS] db_name

功能:DROP DATABASE删除数据库中的所有表和数据库。要小心地使用这个命令!

DROP DATABASE返回从数据库目录被删除的文件的数目。通常,这3倍于表的数量,因为每张表对应于一个“.MYD”文件、一个“.MYI”文件和一个“.frm”文件。

在MySQL 3.22或以后版本中,你可以使用关键词IF EXISTS阻止一个错误的发生,如果数据库不存在。

三、表复制及备份还原

假设现在有表books:

1.复制表结构

1.1 含有主键等信息的完整表结构

CREATE table 新表名 LIKE book;

1.2 只有表结构,没有主键等信息

Tabelle erstellen, neuer Tabellenname, * aus Büchern auswählen;

oder

Tabelle erstellen, neuer Tabellenname als (* aus Buch auswählen);

oder

Tabelle erstellen, neuer Tabellenname, * aus Büchern auswählen, wobei 1=2;

2. Die Daten aus der alten Tabelle in die neue Tabelle einfügen.

INSERT IN DIE neue Tabelle SELECT * FROM old table;

Hinweis: Die neue Tabelle muss bereits vorhanden sein

3. Geben Sie die DDL-Anweisung ein, um die Tabelle zu erstellen

show create Tabelle Tabellenname;

Tabellendaten löschen

Tabelle Tabellenname abschneiden;

Datenbank sichern

Sichern Sie beispielsweise die Bibliotheksdatenbank

Gehen Sie zum MySQL-Bin-Verzeichnis

E:mysql-5.6.23-win32bin

Verwenden Sie „mysqldump- u Benutzername-p Datenbankname> Sicherungsname"Datenbank in Datei exportieren

C:ProgrammeMySQLMySQL Server 5.5bin>mysqldump -u root -p test >test.sql

Passwort eingeben: * **

Das ist es.

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

E:mysql-5.6.23-win32bin-Verzeichnis

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

6. Datenbank wiederherstellen

Stellen Sie die Testdatenbank als Beispiel wieder her

Erstellen Sie zunächst die Datenbank test1

und gehen Sie dann zu mysql>

Geben Sie den Quellpfad ein

Das war's.

Achten Sie auf den Pfad, in dem sich test.sql befindet!

Sammlung von MySQL-Anweisungen: Erstellung, Autorisierung, Abfrage, Änderung

4. Datenoperationen in Datenbanktabellen

1. Daten in MySQL-Tabelle löschen

Aus Tabellennamen löschen;

Tabellennamen abschneiden;

Die Löschanweisung ohne den Parameter where kann den gesamten Inhalt der MySQL-Tabelle löschen im MySQL-Inhalt.

效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。

delete的效果有点像将mysql表中所有记录一条一条删除到删完,

而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

2、删除表中的某些数据

delete from命令格式:delete from 表名 where 表达式

例如,删除表 MyClass中编号为1 的记录:

代码如下:

mysql> delete from MyClass where id=1;
Nach dem Login kopieren

五、修改表的列与表名

1、给列更名

>alter table 表名称 change 字段名称 字段名称

例如:

alter table pet change weight wei;

2、给表更名

>alter table 表名称 rename 表名称

例如:

alter table tbl_name rename new_tbl

3、修改某个表的字段类型及指定为空或非空

>alter table 表名称 change 字段名称字段名称 字段类型 [是否允许非空];

>alter table 表名称 modify 字段名称字段类型 [是否允许非空];

4、修改某个表的字段名称及指定为空或非空

>alter table 表名称 change 字段原名称字段新名称 字段类型 [是否允许非空];

例如:

修改表expert_info中的字段birth,允许其为空

代码如下:

>alter table expert_info change birth birth varchar(20) null;
Nach dem Login kopieren

六、修改表中的数据

1.增加一个字段(一列)

alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值

例如:

代码如下:

alter table mybook add column publish_house varchar(10) default ”;
Nach dem Login kopieren

2.更改一个字段名字(也可以改变类型和默认值)

alter table table_name change sorce_col_name dest_col_name type defaultvalue; source_col_name指原来的字段名称,dest_col_name

指改后的字段名称

例如:

代码如下:

alter table Board_Info change IsMobile IsTelphone int(3) unsigned default1;
Nach dem Login kopieren

3.改变一个字段的默认值

alter table table_name alter column_name set default value;

例如:

代码如下:

alter table book alter flag set default '0′;
Nach dem Login kopieren

4.改变一个字段的数据类型

alter table table_name change column column_name column_name type;

例如:

代码如下:

alter table userinfo change column username username varchar(20)
Nach dem Login kopieren

5.向一个表中增加一个列做为主键

alter table table_name add column column_name type auto_increment PRIMARYKEY;

例如:

代码如下:

alter table book add column id int(10) auto_increment PRIMARY KEY;
Nach dem Login kopieren

6.数据库某表的备份,在命令行中输入:

mysqldump -u root -p database_name table_name > bak_file_name

例如:

代码如下:

mysqldump -u root -p f_info user_info > user_info.dat
Nach dem Login kopieren

7.导出数据

select_statment into outfile”dest_file”;

例如:

代码如下:

select cooperatecode,createtime from publish limit 10 intooutfile”/home/mzc/temp/tempbad.txt”;
Nach dem Login kopieren

8.导入数据

load data infile”file_name” into table table_name;

例如:

代码如下:

load data infile”/home/mzc/temp/tempbad.txt” into table pad;
Nach dem Login kopieren

9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的字段里。

例如:

代码如下:

insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;
Nach dem Login kopieren

10.删除字段

alter table form1 drop column 列名;

七、查询表

mysql查询的五种子句

where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数)

1、查询数值型数据:

SELECT * FROM tb_name WHERE sum > 100;

查询谓词:>,=,<,<>,!=,!>,!<,=>,=<

2、查询字符串

SELECT * FROM tb_stu WHERE sname = 'Xiao Liu'

SELECT * FROM tb_stu WHERE sname wie 'Liu%'

SELECT * FROM tb_stu WHERE sname wie '%programmer'

SELECT * FROM tb_stu WHERE sname like '%PHP%'

3. Datumstypdaten abfragen

SELECT * FROM tb_stu WHERE date = '2011 - 04-08'

Hinweis: Verschiedene Datenbanken weisen Unterschiede in den Datumsdaten auf: :

(1)MySQL: SELECT * from tb_name WHERE birthday = '2011-04-08'

(2)SQL Server:SELECT * from tb_name WHERE birthday = '2011-04-08'

(3)Access:SELECT * from tb_name WHERE birthday = #2011-04-08#

4. Logische Daten abfragen

SELECT * FROM tb_name WHERE type = 'T'

SELECT * FROM tb_name WHERE type = 'F'

Logische Operatoren: und oder nicht

5. Nicht leere Daten abfragen

SELECT * FROM tb_name WHERE address <>'' order by addtime desc

Hinweis: <> entspricht !=

in PHP 6. Verwenden Sie Variablen, um numerische Daten abzufragen

SELECT * FROM tb_name WHERE id = '$_POST[text]'

Hinweis: Wenn Variablen zum Abfragen von Daten verwendet werden, müssen die an SQL übergebenen Variablen nicht in Anführungszeichen gesetzt werden, da bei der Verbindung von Zeichenfolgen in PHP mit numerischen Daten The Das Programm wandelt die numerischen Daten automatisch in eine Zeichenfolge um und verbindet sie dann mit der zu verbindenden Zeichenfolge

7. Verwenden Sie Variablen, um Zeichenfolgendaten abzufragen

SELECT * FROM tb_name WHERE name LIKE '%$_POST[name]%'

Die exakte Übereinstimmungsmethode „%%“ bedeutet, dass es überall erscheinen kann

Fragen Sie die ersten n Datensätze ab

SELECT * FROM tb_name LIMIT 0,$N;

limit-Anweisung wird in Verbindung mit anderen Anweisungen verwendet, z. B. order by und anderen Anweisungen, und die SQL-Anweisungen werden in a verwendet Unzählige Möglichkeiten, was das Programm sehr flexibel macht

9. Nach der Abfrage von n Datensätzen

SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n

10. Die Abfrage beginnt an der angegebenen Position n Datensätzen von

SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n

Hinweis: die Die ID der Daten beginnt bei 0

11. Fragen Sie die ersten n Datensätze in den statistischen Ergebnissen ab

SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num

12 Fragen Sie die Daten der angegebenen Zeit ab Zeitraum

SELECT Zu findendes Feld FROM Tabellenname WHERE Feldname ZWISCHEN Anfangswert UND Endwert

SELECT * FROM tb_stu WHERE Alter ZWISCHEN 0 UND 18

13. Statistische Daten nach Monat abfragen

SELECT * FROM tb_stu WHERE Month(date) = '$_POST[date]' ORDER BY date ;

Hinweis: SQL-Sprache bietet Die folgenden Funktionen können verwendet werden, um einfach nach Jahr, Monat und Tag

year(data) abzufragen: Geben Sie den Wert zurück, der dem AD-Jahr und der AD-Minute im Datenausdruck

month (data) entspricht ): Gibt den Wert zurück, der dem Monat und der Minute im Datenausdruck

entspricht. Tag (Daten): Gibt den Wert zurück, der dem Datum im Datenausdruck entspricht

14. Datensätze abfragen größer als die angegebene Bedingung

SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;

15. Die Abfrageergebnisse zeigen keine doppelten Datensätze

SELECT DISTINCT Feldname FROM Tabellenname WHERE Abfragebedingung

Hinweis: DISTINCT in der SQL-Anweisung muss in Verbindung mit der WHERE-Klausel verwendet werden, sonst ändern sich die Ausgabeinformationen nicht und die Feld kann nicht verwendet werden *Ersetzen Sie

16. Abfrage der kombinierten Bedingungen von NOT und Prädikat

(1)NOT BERWEEN … AND … für Daten zwischen dem Startwert und dem Endwert Die Zeilenabfrage kann geändert werden in Endwert

(2)IS NOT NULL Abfrage für Nicht-Null-Werte

(3)IS NULL Abfrage für Null Werte

(4)NOT IN Diese Formel gibt die Suche nach einem Ausdruck basierend darauf an, ob das verwendete Schlüsselwort in der Liste enthalten oder aus der Liste ausgeschlossen ist. Der Suchausdruck kann eine Konstante oder ein Spaltenname sein Der Spaltenname kann eine Reihe von Konstanten sein, häufiger handelt es sich jedoch um eine Unterabfrage

17. Zeigt die doppelten Datensätze und die Anzahl der Datensätze in der Datentabelle an

SELECT name,age,count( *),age FROM tb_stu WHERE age = '19' group by date

18. Daten in absteigender/aufsteigender Reihenfolge abfragen

SELECT Feldname FROM tb_stu WHERE Bedingung ORDER BY Feld DESC absteigende Reihenfolge

SELECT Feldname FROM tb_stu WHERE Bedingung ORDER BY Feld ASC aufsteigende Reihenfolge

Hinweis: Wenn die Sortiermethode beim Sortieren von Feldern nicht angegeben wird, Die Standardeinstellung ist aufsteigende ASC-Reihenfolge.

19. Führen Sie eine Abfrage mit mehreren Bedingungen für Daten durch. .

Hinweis: Die Sortierung mit mehreren Bedingungen dient dazu, die Ausgabe von Datensätzen gemeinsam einzuschränken. Da sie nicht durch eine einzelne Bedingung eingeschränkt ist, gibt es im Allgemeinen einige Unterschiede im Ausgabeeffekt.

20. Statistische Ergebnisse sortieren

Die Funktion SUM ([ALL] Feldname) oder SUM ([DISTINCT] Feldname) kann die Summe der Felder ermitteln ALL, es ist die Summe aller Datensätze in diesem Feld. Wenn es DISTINCT ist, ist es die Summe aller Felder aller nicht doppelten Datensätze in diesem Feld

Zum Beispiel: SELECT name, SUM (price ) AS sumprice FROM tb_price GROUP BY name

SELECT * FROM tb_name ORDER BY mount DESC,price ASC

21. Einspaltige Datengruppenstatistik

SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC

Hinweis: Wenn die Anweisung „group by sorting order by“ gleichzeitig in der SQL-Anweisung erscheint, wird die Gruppierung angezeigt Die Anweisung muss vor der Sortieranweisung geschrieben werden, andernfalls tritt ein Fehler auf

22 Statistiken zur Datengruppierung mit mehreren Spalten

Statistiken zur Datengruppierung mit mehreren Spalten sind ähnlich zu einspaltigen Datengruppierungsstatistiken

SELECT *, SUM( Field 1*Field 2) AS (new field 1) FROM table name GROUP BY field ORDER BY new field 1 DESC

SELECT id ,name,SUM(price*num) AS sumprice FROM tb_price GROUP BY pid ORDER BY sumprice DESC

Hinweis: Auf die Anweisung „group by“ folgt im Allgemeinen eine Sequenz, die keine Aggregatfunktion ist, d. h. sie ist es keine zu gruppierende Spalte

23. Gruppierungsstatistiken für mehrere Tabellen

SELECT a.name,AVG(a.price),b.name,AVG(b .price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;

Das Obige ist der Inhalt von MySQL und der Anweisungssammlung. Weitere verwandte Inhalte finden Sie hier zur chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage