mysql tutorial 열 데이터베이스의 Python 전체 스택 설명
권장(무료): mysql tutorial
주요 세 가지 측면: 1.Linux 터미널 명령
2.MySQL 문
3.Python 호출
터미널 명령:
vi 텍스트 편집기
cat /etc/password | grep "username" 사용자 테이블 가져오기 sudo -i 가져오기 루트 권한sudo apt-get install python3-pip pip3 설치sudo pip3 install pymysql mysql 설치sudo apt-get install mysql-server 서버 설치sudo apt-get install mysql-client 클라이언트 설치TSudo APT-get 업데이트 읽기 목록 저장 위치/var/lib/APT/Lists
sudo APT-Get 업그레이드 및 업데이트
Sudo /etc/init.d/mysql 상태
sudo/ETC /init.d/mysql stop / etc/
mysql -h 호스트 주소 -u 사용자 이름 -p 비밀번호 off 1. root
chmod 644 파일 이름 가져오기 2. 파일 권한 수정
cd etc/mysql/mysql.conf.d 3. 구성 파일 디렉터리 입력 tCP ETC/MSQL.CNF/MySQLD.CNF.BAK 4. 백업
Subl mysqld.cnf 5.vi 오픈 소스 파일
[mysqld] 디렉터리
Character_Set_SERVER = UTF8 6. 명령 추가 /ETC/ETC/ init .d/mysql
mysqldump -u user -p 소스 라이브러리 이름> ~/xxx.sql 이름 단일 라이브러리 备 -b library 1 library 2.. 3. 여러 라이브러리 백업2 라이브러리 이름 표 1 2 ... 4. 지정된 라이브러리 지정 테이블
데이터 복구:
Mysql -UROOT -P & LT 대상 라이브러리 이름 xxx.sql 1. 백업 라이브러리 복원 Mysql -UROOT -P —ONE -DataBase 대상 라이브러리 이름 & lt; xxx.sql 2. 백업에서 라이브러리 복원: 테이블은 삭제할 테이블 레코드를 삭제하지 않습니다.Mysql 원격 연결:
Sudo -i 1. 관리자 모드
cd CD /etc/mysql/mysql.conf.d/ 2.mysql 디렉토리 vi mysqld.cnf 3. 기본 IP를 열고 주석 처리#bin d-주소 = 127.0.0.1 4. 저장 /etc/init.D/MySQL 다시 시작 5. 서비스 다시 시작승인된 사용자:
라이브러리의 승인된 목록에 "@"%"식별"에 대한 모든 권한을 부여합니다.* 권한 목록python3 모듈 설치:
모듈 이름: pymysql온라인: sudo pip3 install pymysql
오프라인: pymysql-0.7.11 .tar.gz $ tar -zxvf pymyql-0 .7.11.tar .gz $ cd pymysql-0.7.11 $ sudo python3 setup.py install 확인: $ python3 $ python3 ; import pymysql 모듈 설치:모듈 이름: MySQLdb
설치: sudo pip install mysql-python
sqlalchemy 프레임워크 설치:
온라인: sudo pip3 install sqlalchemy
오프라인:
$ tar -zxvf SQLAlchemy-1.2.10.tar.gz $ cd SQLAlchemy-1.2.10
$ sudo python3 setup.py install
확인:
$ python3
>>> import sqlalchemy
>> ;>
Pymysql 사용:from pymsql import * 1. 데이터베이스 연결 설정
c = db.cursor()) 2. 커서 개체 생성
c.실행(“삽입….”) > > 닫기
7.connect 개체:
db = pymysql.connect (매개변수 목록)
1. 호스트: 호스트 주소, localhost
2. 포트: 포트 번호, 기본값은 3306
3. 사용자: 사용자 이름
4. 비밀번호: 비밀번호
5. 데이터베이스: 라이브러리
6. Charset: 인코딩 방식, utf8
8 사용을 권장합니다.객체 연결 방식:
데이터베이스 연결 객체(db) 메서드
1. db.close()는 연결을 닫습니다
2. db.commit()는 실행을 위해 데이터베이스에 제출합니다
3. db.rollback()은 롤백합니다
4. cur = db.cursor( )는 커서 개체를 반환하며, 특정 SQL 명령을 실행하는 데 사용됩니다.
9.커서 개체 메서드:
커서 개체 메서드(cur)
1. cur.execute(sql 명령, [list]) Execute SQL 명령
2. cur.close() 커서 개체를 닫습니다
3. cur.fetchone() 쿼리 결과 집합의 첫 번째 데이터를 가져옵니다
4. cur.fetchmany(n ) n개의 항목을 얻습니다
((레코드 1), (레코드 2))
5. cur.fetchall() 모든 레코드 가져오기
ORM: orm(Object Relational Mapping Object Relational Mapping) 정의: 객체 모델을 MySQL 데이터베이스에 매핑
SQL 명령:
라이브러리 이름을 사용하세요. ~ 눈에 띄지 않음 테이블 생성
show create table 테이블 이름; ~ ~ 테이블 삭제
테이블 이름 값에 삽입 (값 1 ), (값 2)… Record
테이블 이름에 삽입(필드 이름 1,…) 값(값 1),…; 필드 데이터 삽입
select * from table name [where 조건] ; ; 테이블 이름 필드 이름 데이터 유형을 먼저 추가하세요. 테이블 이름 필드 이름 수정 새 데이터 유형
테이블 이름에서 삭제,
테이블 이름 만들기 테이블 이름에서 .. 선택 where 조건; .MySQL 변수 쿼리
고유 인덱스 생성 테이블 이름(필드 이름)에 인덱스 이름 삭제 index 테이블 이름의 인덱스 이름; Index
alter table 테이블 이름 기본 키 추가(필드 이름) (…. , id int, 기본 키(필드 이름) ); >
create…t1();
create table t2(…외래 키(참조 필드 이름)참조 기본 테이블(참조 필드 이름)on 삭제 계단식 작업 on 업데이트 계단식 작업);외래 키 추가:
테이블 테이블 이름 추가
외래 키(참조 필드)가 기본 테이블(참조 필드) 참조 삭제 시 …업데이트 시 …계단식 동작 :
restrict(기본값)는 메인 테이블이 슬레이브 테이블을 작동하는 것을 허용하지 않습니다.
cascade: 팔로우 삭제, 업데이트 set null: 마스터 테이블이 변경된 후 슬레이브 테이블 값이 NULL입니다내부 링크:
테이블 1에서 필드 이름 선택
조건에 따라 테이블 2 내부 조인 조건에 따라 테이블 3 내부 조인...외부 링크:
왼쪽 테이블을 기반으로 쿼리 결과 표시
테이블 1f에서 필드 이름 선택 LEFT JOIN 테이블 2 ON 조건 LEFT JOIN 테이블 3 ON 조건 ...오른쪽 링크
쿼리 결과를 오른쪽 테이블에 표시하는 테이블데이터 가져오기:
데이터 인파일 “파일 이름”
을 테이블 테이블 이름으로 로드
“구분자”로 끝나는 필드“n”으로 끝나는 줄;
데이터 내보내기:
... 테이블 이름에서outfile로 선택 /var/lib/mysql-files/파일 이름""구분 기호"로 끝나는 필드"n"으로 끝나는 줄;
데이터 복구:
단일 라이브러리 복원 mysql -uroot - p < ; 대상 데이터베이스 이름 xxx.sql모든 데이터베이스 백업에서 특정 데이터베이스 복원(-one-database) Mysql -uroot -p –one-database 대상 데이터베이스 이름 fbc3711c4e9174b3f4b1d5b0cf01c148 ~/xxx.sql–all-databases 모든 데이터베이스 백업 라이브러리 이름 단일 데이터베이스 백업 - B 라이브러리 1 라이브러리 2.. 여러 라이브러리 백업 SQL 쿼리: 4.having … 쿼리 중첩: (국가별로 sanguo 그룹에서 최대(공지) 선택); 그룹화 기준: 쿼리 결과 그룹화 show create table 테이블 이름; 테이블 이름 생성(...)engine=myisam; InnoDB 기능(2개 파일): 행 수준 잠금, 외래 키 지원, 트랜잭션 작업 .frm(테이블 구조, 인덱스), .ibd(테이블 레코드) MyISAM: MyISAM 기능( 파일 3개 ): 잠금 세분성 : 조정: 선행 %, in, not in, * 대신 필드, 데이터 유형: -- . 숫자 n: 소수 자릿수 범위 내 비교: 1.where 필드 이름이 값 1과 값 2 사이 2.where 필드 이름은 (값 1, 값 2,….) 3.where 필드 이름은 (값 1, 값) 2,...) Empty: 이름이 null인 경우 Non-empty: 이름이 null이 아닌 경우 NILL: Null 값, is 또는 is not과만 일치할 수 있음 "": 빈 문자열, 사용 = 또는 != 일치 퍼지 비교: 필드 이름이 표현식과 같은 경우 표현식 _: 단일 문자와 일치 %: 0과 여러 문자 일치 NULL은 계산되지 않습니다. 정렬: 순서 by ASC | 디스플레이: 제한 시작 표시 위치, 항목 수 페이지당 n개의 레코드 표시, 페이지 m 표시: 제한(m-1)*n, n MySQL은 Python 데이터베이스 사용자 로그인 ORM sqlalchemy 프레임워크# mysqlpython.py
# 导入mysql模块
from pymysql import *
class MysqlPython:
def __init__(self, database, # 库
host="127.0.0.1", # ip地址
user="root", # 用户名
password="123456", # 密码
port=3306, # 端口
charset="utf8"): # 字符集
self.host = host
self.database = database
self.user = user
self.password = password
self.port = port
self.charset = charset
def open(self): # 创建数据库链接函数
self.db = connect(host=self.host,
database=self.database,
user=self.user,
password=self.password,
port=self.port,
charset=self.charset)
self.cur = self.db.cursor() # 创建游标对象
def close(self): # 创建断开数据库链接 关闭游标函数
self.cur.close()
self.db.close()
def zhixing(self, sql, L=[]): # 创建pymysql.execute() 方法函数
try:
self.open() # 链接数据库
self.cur.execute(sql, L) # 参数化执行SQL命令
self.db.commit() # 提交数据
print("ok")
except Exception as e:
self.db.rollback() # 出错取消提交
print("Failed", e)
self.close() # 断开数据库链接 关闭游标
def all(self, sql, L=[]):
try:
self.open()
self.cur.execute(sql, L)
result = self.cur.fetchall()
return result
except Exception as e:
print("Failed", e)
self.close()
과 상호 작용합니다. from mysqlpython import Mysqlpython
from hashlib import sha1
uname = input("请输入用户名:")
pwd = input("请输入密码:")
# 用sha1给pwd加密
s1 = sha1() # 创建sha1加密对象
s1.update(pwd.encode("utf8")) # 指定编码
pwd2 = s1.hexdigest() # 返回16进制加密结果
sqlh = Mysqlpython("db4")
select = "select password from user where
username=%s;"
result = sqlh.all(select, [uname])
# print(result)
# (('7c4a8d09ca3762af61e59520943dc26494f8941b',),)
if len(result) == 0:
print("用户名不存在")
elif result[0][0] == pwd2:
print("登录成功")
else:
print("密码错误")
# 创建一张表 # 连接数据库的模块 from
sqlalchemy import create_engine fromsqlalchemy.ext.declarative
import declarative_base from sqlalchemy import Column, Integer
,String engine = create_engine("mysql+pymysql://root:123456@localhost/db4",
encoding="utf8") Base = declarative_base() # orm基类 class User(Base):
# 继承Base基类 __tablename__ = "t123" id =Column(Integer, primary_key=True)
name = Column(String(20)) address = Column(String(40))Base.metadata.create_all
(engine)
위 내용은 MySQL 데이터베이스에 대한 Python 풀 스택 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!