mysql 數據庫簡單入門

mysql基本操作

  • 連接mysql數據庫
mysql -h 服務器地址  -u root -p 不要在p後面直接跟密碼
  • 忘記密碼
1./etc/mysql/mysqld.conf.d/,編輯mysqld.conf
sudo vim mysqld.conf
2.找到[mysqld]下
添加:skip-grant-tables
保存退出
3.重啓mysql服務:
 sudo service mysql restart | stop | start
4.重新登錄mysql,這個時候不需要密碼,登錄進去後:
use mysql;
update user set authentication_string=PASSWORD("設置密
碼") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
5.重啓mysql服務
sudo service mysql restart
  • 遠程連接
1.通過mysql -u⽤戶名 -p登錄mysql數據庫
2.創建⼀個新⽤戶來遠程連接
 create user 'root'@'%' identified by '123' #密碼
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY
'123' WITH GRANT OPTION;
3.執⾏命令:flush privileges; 刷新權限
4.退出mysql,到/etc/mysql/mysql.conf.d下,執行 sudo vim mysqld.cnf
 找到 “bind-address = 127.0.0.1, 或者把 127.0.0.1 改成 0.0.0.0這⼀⾏要註釋掉,只需在前⾯加個
#
5.重啓mysql服務
 sudo service mysql restart | start | stop #重啓、啓動、停⽌
 或者:sudo /etc/init.d/mysql restart | start | stop
6.如果開啓了防⽕牆,請添加3306端⼝
 sudo ufw allow 3306
  • 創建數據庫
create database 數據庫名
  • 查看數據庫
show databases;
  • 刪除數據庫
drop database 數據庫
  • 選中庫
use 數據庫名
  • 查看錶
show tables;
  • 查看數據庫創建語句
show create database 數據庫名
  • 查看選中的數據庫
select database()
  • 修改數據庫字符集
alter database student default charset=utf8;
特別注意!
  • 每條命令結束必須使⽤; 或者 \g 結束
  • 退出mysql使⽤命令quit或exit
操作數據庫表
  • 創建表
create table [if not exists] 表名(
 字段名1 類型 [限制],
 字段名2 類型 [限制],
 ...
 字段名n 類型 [限制] #最後⼀列沒有逗號
) [engine=myisam | innodb][ default charset=utf8];
primary key 主鍵 不允許有重複值,不允許爲空
auto_increment ⾃增⻓,只對int型主鍵起作⽤
#複合主鍵
mysql> create table grade(
 sid int ,
 cid int,
 score float,
 primary key(sid,cid));
  • 刪除表
drop table 表名
  • 複製表結構
create table 表名 like 其他表名
  • 查看錶結構
desc 表名;
  • 查看建表語句
show create table 表名;
  • 修改字段類型
 alter table 表名 modify 字段名 類型 [限制] #增加字段
 alter table 表名 add [column] 字段名 類型 [限制];
#刪除字段
 alter table 表名 drop [column] 字段名;
修改字段名和類型
 alter table 表名 change [column] 舊字段名 新字段名 類型 [限制];
 
#修改表名
 alter table 表名 rename 新表名
 alter table 表名 [engine=myisam] [default charset=utf8];
 
 可以通過firstafter指定插⼊位置
 alter table student add sno varchar(3) not null after sid; //在
sid列後插⼊
 alter table student add sid int primary key auto_increment
first;//在第⼀列插⼊
  • 字段限制
primary key 不允許空值,唯⼀
not null ⾮空
unique 唯⼀
default 缺省,默認值

數據增刪改查

寫法⼀:insert into 表名(字段1,字段2...) values(1,2...);
按照建表時的字段順序進⾏插⼊,每⼀列都要給值
寫法二:插⼊多個記錄
 insert into 表名(字段1,字段2...)
 values(1,2...),
 (1,2...),
 (1,2...)....
update 表名 set 字段1=1,字段2=2... where 條件 #不加where修改的是所
有的記錄
刪除表中的數據,⾃增主鍵的值不會重新開始
delete from 表名 where 條件;#如果不加條件,會刪除表中所有數據
alter table 表名 auto_increment = 5 # 設置⾃增主鍵開始值
清空表,⾃增主鍵的值重新開始編號
truncate
 truncate table 表名,清空表中所有記錄,等價於delete from 表名;
 deletetruncate差別,truncate後,表中⾃增主鍵值從1開始
  • 基礎查詢
select username,password from user;
select usernname as ⽤戶名, password as 密碼 from user; #可以給字段起
別名,as後面跟個別名
select * from user; #查詢所有字段,慎⽤,⼀般不建議使⽤,會導致⽆法優化
sql語句
select 2018,username,password from user; #可以有常量,表達式
select sname,2018-year(sbirthday) from student; #year是mysql的內置函數
select distinct username from user; #去除重複記錄 distinct 針對查詢結
果去除重複記錄,不針對字段
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章