【Mysql 學習】mysql 的使用入門
開始學習mysql ,記錄自己學習的一點記錄。
--建立資料庫company
mysql> create database company;
Query OK, 1 row affected (0.00 sec)
--要知道系統中有那些資料庫,可以使用如下命令來查詢:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| company |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
information_schema --主要儲存了系統中的一些資料庫物件資訊,比如使用者表資訊,列資訊,許可權資訊, 字符集資訊,分割槽資訊。
mysql --儲存了系統的使用者許可權資訊
test --系統自動建立的資料庫,任何人都可以使用。
--查詢當前使用的資料庫。
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
mysql> use company;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| company |
+------------+
1 row in set (0.00 sec)
--刪除資料庫company
mysql> drop database company;
Query OK, 0 rows affected (0.03 sec)
-使用use dbname 選擇要連線的資料庫
mysql> use mysql;
Database changed
--檢視mysql資料庫中存在的資料表。
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
23 rows in set (0.03 sec)
--建立表,由於mysql的表名是以目錄的形式存在磁碟上的,所以表名要符合任何目錄名允許的字元。
mysql> create table dept(deptno int(4),deptname varchar(50));
Query OK, 0 rows affected (0.00 sec)
--檢視錶結構。
mysql> desc dept;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| deptno | int(4) | YES | | NULL | |
| deptname | varchar(50) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> create table employee (eid int(4),ename varchar(50), birthday date,deptno
int (4));
Query OK, 0 rows affected (0.01 sec)
---檢視構造表的ddl語句。
mysql> show create table employee \G
*************************** 1. row ***************************
Table: employee
Create Table: CREATE TABLE `employee` (
`eid` int(4) DEFAULT NULL,
`ename` varchar(50) DEFAULT NULL,
`birthday` date DEFAULT NULL,
`deptno` int(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
--alter table 的使用方法。
--修改表名。
mysql> alter table employee rename emp;
Query OK, 0 rows affected (0.00 sec)
mysql> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| eid | int(4) | YES | | NULL | |
| ename | varchar(50) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| deptno | int(4) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> show tables ;
+-------------------+
| Tables_in_company |
+-------------------+
| dept |
| emp |
+-------------------+
2 rows in set (0.00 sec)
--修改表中列名。
ALTER TABLE TABNAME CHANGE COLUMN old_col_name new_col_name col_definition
--將birthday 改為 birthdate
mysql> alter table emp change birthday birdate date;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc emp;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| eid | int(4) | YES | | NULL | |
| ename | varchar(50) | YES | | NULL | |
| birdate | date | YES | | NULL | |
| deptno | int(4) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
--修改表中欄位的型別
ALTER TABLE TABNAME MODIFY [COLUMN] column_definition [FIRST|AFTER col_name]
mysql> alter table emp modify eid int(5);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table emp modify sex char(2) first;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc emp;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| sex | char(2) | YES | | NULL | |
| eid | int(5) | YES | | NULL | |
| ename | varchar(50) | YES | | NULL | |
| birdate | date | YES | | NULL | |
| deptno | int(4) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
比較一下 change 與modify的區別:
1 change 和 modify 都可以修改表的定義,不同的是change後面需要寫兩次列名,不方便,
2 但是change的優點是可以修改表中的列名稱,而modify則不能。
alter table tabname add new_column after/before ole_column;
alter table emp modify age int(3) first;
--增加表中的欄位
語法:
alter table tabname add [column] column_definition [first|after col_name]
mysql> alter table emp add column sex char(2);
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc emp;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| eid | int(5) | YES | | NULL | |
| ename | varchar(50) | YES | | NULL | |
| birdate | date | YES | | NULL | |
| deptno | int(4) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
--
mysql> alter table emp add column sex char(2) after ename;
ERROR 1060 (42S21): Duplicate column name 'sex'
--刪除表中的欄位。
mysql> alter table emp drop column sex;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
--指定新增欄位所在的位置。預設是新增到表中末尾。
mysql> alter table emp add column sex char(2) after ename;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc emp;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| eid | int(5) | YES | | NULL | |
| ename | varchar(50) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
| birdate | date | YES | | NULL | |
| deptno | int(4) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
--注意:CHANGE\FIRST\AFTER COLUMN 是mysql 在標準sql的擴充。在其他資料庫上不一定適用
--關於DML 語句這裡和sql標準一樣的就不再多做介紹了,重點說一下 insert 插入操作:
insert into tabname(col1,col2,...) values(val1,val2,...)
--mysql支援如下操作:
mysql> insert into dept(deptno ,deptname) values (1002,'ceo');
Query OK, 1 row affected (0.00 sec)
mysql> insert into dept(deptno ,deptname) select 1003,'manager';
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from dept;
+--------+----------+
| deptno | deptname |
+--------+----------+
| 1001 | hr |
| 1002 | ceo |
| 1003 | manager |
+--------+----------+
3 rows in set (0.00 sec)
insert into tabname(col1,col2,...) select val1,val2,..[,select val1,val2,...]
其中 val與 col 的型別必須一致。否則:
mysql> insert into emp select 10001,'zhangsan','2010-12-30',1001;
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql> desc emp;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| sex | char(2) | YES | | NULL | |
| eid | int(5) | YES | | NULL | |
| ename | varchar(50) | YES | | NULL | |
| birdate | date | YES | | NULL | |
| deptno | int(4) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)
順序不一致時,會報錯,欄位型別不一致時也會報錯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-683058/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Mysql學習】mysql的使用入門MySql
- MySQL學習筆記---入門使用MySql筆記
- Mysql學習筆記2--使用入門MySql筆記
- mysql 基礎命令入門學習MySql
- MySQL入門學習之——innodb lockMySql
- Mysql - 使用入門MySql
- MySQL入門學習之——實戰XtraBackupMySql
- MySQL入門學習之——實戰mysqldumpMySql
- MySQL入門學習之——MySQL錯誤解決彙總MySql
- MySQL入門學習之——原始碼安裝mysql5.5MySql原始碼
- MySQL入門學習之——mysql與oracle死鎖對比MySqlOracle
- 重新學習Mysql資料庫1:無廢話MySQL入門MySql資料庫
- MySQL-學習-快速入門/注入攻擊MySql
- MySQL基礎入門學習教程:mysql資料庫的實現原理MySql資料庫
- 【Mysql學習】LIMIT的使用MySqlMIT
- 【Mysql 學習】LIMIT 的使用MySqlMIT
- MySQL入門--mysql命令MySql
- MySQL入門--MySQL安全MySql
- 【mysql入門】MySql
- MySQL入門MySql
- MySQL入門系列:MySQL概述MySql
- Mysql入門【Mysql約束】MySql
- SQL快速入門 ( MySQL快速入門, MySQL參考, MySQL快速回顧 )MySql
- 入門入門入門 MySQL命名行MySql
- 【Mysql 學習】perror的使用方法MySqlError
- 【Mysql 學習】Mysql 怎樣使用記憶體MySql記憶體
- 入門MySQL——查詢語法練習MySql
- 如何入門 MySQLMySql
- MySQL 快速入門MySql
- mySql入門-(二)MySql
- MySQL入門——排序MySql排序
- MYSQL 入門全套MySql
- Mysql入門【JDBC】MySqlJDBC
- MYSQL入門全套MySql
- MySQL快速入門MySql
- MySQL 入門指南MySql
- MYSQL學習(二) --MYSQL框架MySql框架
- 學習MySQLMySql