Quick Guide of Mysql for Newbies - 图1
© educba

由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址

Quick Guide of Mysql for Newbies

Video tutorial
Text Tutorial

Dataabse type

Relation Database Non-relational Database
- Store specific types of project like customer, products.
- Store as tables
- No tables or relationships
- Don’t understand SQL

INSTALL

For Ubuntu:雪梦科技 2020; 云栖社区, Mac: WebCoder 2016, 简书; Windows: BruceLong 2020; 博客园

Quick Start

  1. mysql
  1. -- print store location
  2. show variables like '%datadir%';
  3. -- print database in stoarage
  4. SHOW DATABASES;
  5. -- Create a new database
  6. CREATE DATABASE `sql_invoicing`;
  7. -- Access the database
  8. USE `sql_invoicing`;
  9. -- Create a table
  10. CREATE TABLE runoob_tbl(
  11. runoob_id INT NOT NULL AUTO_INCREMENT,
  12. runoob_title VARCHAR(100) NOT NULL,
  13. runoob_author VARCHAR(40) NOT NULL,
  14. submission_date DATE,
  15. PRIMARY KEY ( runoob_id )
  16. )ENGINE=InnoDB DEFAULT CHARSET=utf8;
  17. -- show tables
  18. SHOW TABLES
  19. -- Check the index
  20. desc runoob_tbl
  21. /*
  22. INT: datatype = integer;
  23. DATE: datatype = date;
  24. NOT NULL: value auto-fill;
  25. AUTO_INCREMENT: fill-logic;
  26. VARCHAR(10): ??? I don't know
  27. */
  28. -- Insert value to table
  29. INSERT INTO runoob_tbl
  30. (runoob_title, runoob_author, submission_date)
  31. VALUES
  32. ("学习 PHP", "菜鸟教程", NOW());
  33. -- Insert multi-lines value to table
  34. INSERT INTO runoob_tbl
  35. (runoob_title, runoob_author, submission_date)
  36. VALUES
  37. ("学习 myspl", "karobben", NOW()),
  38. ('learn python', 'Karobben', NOW());
  39. -- Print the whole table
  40. SELECT * from runoob_tbl;
  41. -- Print the `runoob_title` column(field)
  42. SELECT `runoob_title` from runoob_tbl;
  43. -- Print the filtered result by WHEN
  44. SELECT * from runoob_tbl WHERE runoob_author='karobben'; #Capitals letters tolerant
  45. SELECT * from runoob_tbl WHERE BINARY runoob_author='Karobben'; #Capital letter matters
  46. -- Print the filtered result by LIKE
  47. SELECT * from runoob_tbl WHERE runoob_author LIKE '%rob%';
  48. -- Change the value of tables by update
  49. UPDATE runoob_tbl SET runoob_title='sleep' WHERE runoob_id=3;
  50. -- Change a part of string in column(field)
  51. UPDATE runoob_tbl SET runoob_author=REPLACE(runoob_author, 'ka', 'Ka')
  52. -- Change the value of table by delete
  53. DELETE FROM runoob_tbl WHERE runoob_id=1;
  54. -- delete the tale
  55. DROP TABLE `runoob_tbl`;
  56. -- delete the database
  57. DROP DATABASE `sql_invoicing`

Set Environment

Change the store directory: 虫文儿~ 2019; 博客园

Show the directory of the DATABASE

  1. show variables like '%datadir%';

Show all databases

  1. SHOW DATABASES;

Create & Drop

Database

ps: ‘;’ is needed for separate commands in sql language.

  1. CREATE DATABASE IF NOT EXISTS `sql_invoicing`;
  2. USE `sql_invoicing`;
  3. SET NAMES utf8;
  4. SET character_set_client= utf8mb4;
  5. SHOW DATABASES;
  1. +--------------------+
  2. | Database |
  3. +--------------------+
  4. | information_schema |
  5. | mysql |
  6. | performance_schema |
  7. | sql_invoicing |
  8. | sys |
  9. +--------------------+
  1. drop database `sql_invoicing`; #deleting sql_invoicing

Table

  1. CREATE TABLE IF NOT EXISTS `runoob_tbl`(
  2. `runoob_id` INT UNSIGNED AUTO_INCREMENT,
  3. `runoob_title` VARCHAR(100) NOT NULL,
  4. `runoob_author` VARCHAR(40) NOT NULL,
  5. `submission_date` DATE,
  6. PRIMARY KEY ( `runoob_id` )
  7. )ENGINE=InnoDB DEFAULT CHARSET=utf8;
  8. SHOW TABLES;
  9. desc runoob_tbl;
  1. +-------------------------+
  2. | Tables_in_sql_invoicing |
  3. +-------------------------+
  4. | runoob_tbl |
  5. +-------------------------+
  6. 1 row in set (0.00 sec)
  7. +-----------------+--------------+------+-----+---------+----------------+
  8. | Field | Type | Null | Key | Default | Extra |
  9. +-----------------+--------------+------+-----+---------+----------------+
  10. | runoob_id | int(11) | NO | PRI | NULL | auto_increment |
  11. | runoob_title | varchar(100) | NO | | NULL | |
  12. | runoob_author | varchar(40) | NO | | NULL | |
  13. | submission_date | date | YES | | NULL | |
  14. +-----------------+--------------+------+-----+---------+----------------+
  15. 4 rows in set (0.00 sec)
  1. DROP TABLE runoob_tbl;

Datatypes

Details: runoob.com

INSERT

Insert a Row

  1. -- Insert value to table
  2. INSERT INTO runoob_tbl
  3. (runoob_title, runoob_author, submission_date)
  4. VALUES
  5. ("学习 PHP", "菜鸟教程", NOW());
  6. -- Insert multi-lines value to table
  7. INSERT INTO runoob_tbl
  8. (runoob_title, runoob_author, submission_date)
  9. VALUES
  10. ("学习 myspl", "karobben", NOW()),
  11. ('learn python', 'Karobben', NOW());

ALTER (insert a column)

  1. ALTER TABLE runoob_tbl
  2. ADD COLUMN Citation VARCHAR(15) AFTER runoob_author;

Select the column

WHERE

  1. SELECT * from runoob_tbl WHERE runoob_author='karobben';
  1. +-----------+--------------+---------------+-----------------+
  2. | runoob_id | runoob_title | runoob_author | submission_date |
  3. +-----------+--------------+---------------+-----------------+
  4. | 2 | 学习 myspl | <span style='background-color:salmon'>Karobben</span> | 2021-01-31 |
  5. | 3 | sleep | <span style='background-color:salmon'>Karobben</span> | 2021-01-31 |
  6. | 4 | learn python | <span style='background-color:salmon'>Karobben</span> | 2021-01-31 |
  7. +-----------+--------------+---------------+-----------------+
  8. 3 rows in set (0.00 sec)

LIKE

  1. -- match the column which end with a| grep a$
  2. '%a'
  3. -- match the column which start with a| grep ^a
  4. 'a%'
  5. -- match the column which contain a| grep a
  6. '%a%'
  7. -- match pattern: grep ^.a.$
  8. '_a_'
  9. -- match pattern: grep ^.a$
  10. '_a'
  11. -- match pattern: grep ^a$
  12. 'a_'
  13. SELECT * from runoob_tbl WHERE runoob_title LIKE '% %';
  1. +-----------+--------------+---------------+-----------------+
  2. | runoob_id | runoob_title | runoob_author | submission_date |
  3. +-----------+--------------+---------------+-----------------+
  4. | 2 | 学习<span style='background-color:salmon'> </span>myspl | Karobben | 2021-01-31 |
  5. | 4 | learn<span style='background-color:salmon'> </span>python | Karobben | 2021-01-31 |
  6. +-----------+--------------+---------------+-----------------+
  7. 2 rows in set (0.00 sec)

UPDATE & DELETE

  1. UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3;
  2. DELETE FROM runoob_tbl WHERE runoob_id=3;

UNION

So, union could combine the unique values from different selected columns to a new table
sql SELECT runoob_title FROM runoob_tbl UNION SELECT runoob_author FROM runoob_tbl;

  1. +--------------+
  2. | runoob_title |
  3. +--------------+
  4. | 学习 myspl |
  5. | sleep |
  6. | learn python |
  7. | Karobben |
  8. +--------------+

it can also be used to merge tables: Example

ORDER

  1. SELECT * from runoob_tbl;
  2. SELECT * from runoob_tbl ORDER BY runoob_title ASC;
  1. +-----------+--------------+---------------+-----------------+
  2. | runoob_id | runoob_title | runoob_author | submission_date |
  3. +-----------+--------------+---------------+-----------------+
  4. | 2 | 学习 myspl | Karobben | 2021-01-31 |
  5. | 3 | sleep | Karobben | 2021-01-31 |
  6. | 4 | learn python | Karobben | 2021-01-31 |
  7. +-----------+--------------+---------------+-----------------+
  8. +-----------+--------------+---------------+-----------------+
  9. | runoob_id | runoob_title | runoob_author | submission_date |
  10. +-----------+--------------+---------------+-----------------+
  11. | 4 | learn python | Karobben | 2021-01-31 |
  12. | 3 | sleep | Karobben | 2021-01-31 |
  13. | 2 | 学习 myspl | Karobben | 2021-01-31 |
  14. +-----------+--------------+---------------+-----------------+

INPUT and Output

Input

  1. -- insert and replace
  2. LOAD DATA INFILE '/var/lib/mysql-files/test.csv' REPLACE
  3. INTO TABLE regulation_net
  4. FIELDS TERMINATED BY ','
  5. OPTIONALLY ENCLOSED BY '"'
  6. LINES TERMINATED BY '\n';
  7. IGNORE 1 ROWS;

output

  1. ## output sql as txt file
  2. mysqldump -h other-host.com -P port -u root -p database_name > dump.txt
  1. -- output as csv
  2. SELECT * FROM regulation_net;
  3. SELECT * INTO OUTFILE '/var/lib/mysql-files/test.csv'
  4. FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  5. LINES TERMINATED BY '\n'
  6. FROM regulation_net;

Enjoy~

本文由Python腳本GitHub/語雀自動更新

由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址

GitHub: Karobben
Blog:Karobben
BiliBili:史上最不正經的生物狗