MySQL 데이터베이스에 대한 Python 풀 스택 소개
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 명령:
- /var/lib/mysql ~ + -i ~ 라이브러리 만들기
- 데이터베이스 라이브러리 이름 문자 세트 utf8 생성 라이브러리 문자 세트 보기
- 현재 라이브러리 보기
라이브러리 이름을 사용하세요. ~ 눈에 띄지 않음 테이블 생성
show create table 테이블 이름; ~ ~ 테이블 삭제
테이블 이름 값에 삽입 (값 1 ), (값 2)… Record
테이블 이름에 삽입(필드 이름 1,…) 값(값 1),…; 필드 데이터 삽입
select * from table name [where 조건] ; ; 테이블 이름 필드 이름 데이터 유형을 먼저 추가하세요. 테이블 이름 필드 이름 수정 새 데이터 유형
테이블 이름에서 삭제,
update 테이블 이름 설정 필드 1=값 1, 필드 이름 2=값 2 ,... where 조건 테이블 레코드 변경(추가해야 하는 위치)- 테이블 테이블 이름 변경 원래 이름 새 이름 데이터 유형 변경
테이블 이름 만들기 테이블 이름에서 .. 선택 where 조건; .MySQL 변수 쿼리
- 테이블 이름 목록에서 필드 이름 목록을 선택합니다.
- 테이블 이름(필드 이름)에 인덱스 이름을 생성합니다. 테이블 생성(… .index(필드 이름), ...) 테이블, 일반 인덱스 생성
- 테이블 이름에 인덱스 인덱스 삭제, 일반 인덱스 삭제
- 다음에서 인덱스 표시
고유 인덱스 생성 테이블 이름(필드 이름)에 인덱스 이름 삭제 index 테이블 이름의 인덱스 이름; Index
alter table 테이블 이름 기본 키 추가(필드 이름) (…. , id int, 기본 키(필드 이름) ); >
- (id)로 설정 int 기본 키 auto_increment,)auto_increment=10000; 테이블 이름 수정 id int auto_increment;
- alter 테이블 테이블 이름 수정 id int; name drop 기본 키; (키)
- Non_Unique: 1 : 인덱스 ) QNON_UNIQUE: 0: 고유의 유일한 인덱스(쿼리 결과)
- 테이블 테이블 이름 변경 외래 키 외부 키 이름 삭제
- Show 테이블 생성 테이블 이름 보기
- 외래 키 생성:
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 대상 데이터베이스 이름 < xxx.sql
Restore: 테이블 삭제 덮어쓰기 테이블 레코드 삭제데이터 백업:
mysqldump -u user -p 소스 데이터베이스 이름> ~/xxx.sql–all-databases 모든 데이터베이스 백업 라이브러리 이름 단일 데이터베이스 백업- B 라이브러리 1 라이브러리 2.. 여러 라이브러리 백업
라이브러리 이름 테이블 1 표 2... 지정된 라이브러리 지정된 테이블 백업 런타임 감지: 열기: set profiling=1 닫기: set profiling= 0; 쿼리 실행 기록: 프로파일링 표시;SQL 쿼리:
3.select … 테이블 이름 1.where2.group by…4.having …
5 .order by … 6.limit …;쿼리 중첩:
select … from table name where 조건(select ….) 이름, gongji from sanguo where(국가, gongji) in(국가별로 sanguo 그룹에서 최대(공지) 선택); 그룹화 기준: 쿼리 결과 그룹화
having: 쿼리 결과 추가 필터링distinct: 반복되는 필드 값 표시 안 함엔진 표시;show create table 테이블 이름; 테이블 이름 생성(...)engine=myisam;
InnoDB:InnoDB 기능(2개 파일):
행 수준 잠금, 외래 키 지원, 트랜잭션 작업
.frm(테이블 구조, 인덱스), .ibd(테이블 레코드)
MyISAM:
MyISAM 기능( 파일 3개 ):
select: 읽기 잠금을 추가한 후 다른 사람은 테이블 레코드를 변경할 수 없지만 쿼리할 수는 있습니다. 삽입, 삭제, 업데이트: 쓰기 잠금을 추가한 후에는 확인하거나 변경할 수 없습니다.잠금 세분성 :
테이블 수준 잠금: myisam 행 수준 잠금: innodb조정:
1. 적절한 스토리지 엔진을 선택하세요. 2. !=를 사용하지 마세요. , NULL 판단 또는 링크,
선행 %, in, not in, * 대신 필드,
데이터 유형:
데이터 유형: int ~ 데이터 유형: 서명됨(서명된 기본값) :-128 ~ 127???? float (m, n) m: 총 자릿수 n: 소수 자릿수 decimal 부동 소수점 수(유효 숫자 28자리)-- . 숫자 n: 소수 자릿수
9의 배수를 4바이트로 묶음 나머지 바이트 1-2 ‐ 1 3-4 2 5-6 3 7-9 4필드 이름 열거형(값 1, 값 2…); > 숫자로 구분) date: "YYYY-MM-DD" time: "HH:MM:SS" datetime: "YYYY-MM-DD HH:MM: SS" timestamp: "YYYY -MM-DD HH:MM:SS”datetime: 값이 지정되지 않은 경우 기본적으로 Null을 반환합니다.timestamp: 값이 지정되지 않은 경우 기본적으로 시스템 시간을 반환합니다time 함수now() 서버의 현재 시간을 반환합니다. curdate() 현재 기간으로 돌아가기 rCurtime() 현재 날짜로 돌아가기 Year(날짜) 지정된 시간으로 돌아가기 Date(날짜) ) 지정된 곳으로 돌아가기 time Time(날짜) 지정된 시간으로 복귀 Coctering 함수 avg(필드 이름): 해당 필드의 평균 값 찾기 sum(필드 이름): sum max(필드 이름): 최대값 min(필드 이름): 최소값 count(필드 이름): 필드 수 계산 Operator: + – * / %Time 연산자select * from table namewhere 필드 이름 연산자( 시간 간격 단위); 시간 간격 단위: 1일 | 2시간 | 2년 | 월숫자 비교: = != >= <= =논리적 비교: and or
범위 내 비교:
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
# 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("密码错误")
ORM sqlalchemy 프레임워크
# 创建一张表 # 连接数据库的模块 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

Navicat 자체는 데이터베이스 비밀번호를 저장하지 않으며 암호화 된 암호 만 검색 할 수 있습니다. 솔루션 : 1. 비밀번호 관리자를 확인하십시오. 2. Navicat의 "비밀번호 기억"기능을 확인하십시오. 3. 데이터베이스 비밀번호를 재설정합니다. 4. 데이터베이스 관리자에게 문의하십시오.

Navicat Premium을 사용하여 데이터베이스 생성 : 데이터베이스 서버에 연결하고 연결 매개 변수를 입력하십시오. 서버를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 생성을 선택하십시오. 새 데이터베이스의 이름과 지정된 문자 세트 및 Collation의 이름을 입력하십시오. 새 데이터베이스에 연결하고 객체 브라우저에서 테이블을 만듭니다. 테이블을 마우스 오른쪽 버튼으로 클릭하고 데이터 삽입을 선택하여 데이터를 삽입하십시오.

MySQL에서 테이블을 복사하려면 새 테이블을 만들고, 데이터를 삽입하고, 외래 키 설정, 인덱스 복사, 트리거, 저장된 절차 및 기능이 필요합니다. 특정 단계에는 다음이 포함됩니다 : 동일한 구조를 가진 새 테이블 작성. 원래 테이블의 데이터를 새 테이블에 삽입하십시오. 동일한 외래 키 제약 조건을 설정하십시오 (원래 테이블에 하나가있는 경우). 동일한 색인을 만듭니다. 동일한 트리거를 만듭니다 (원래 테이블에 하나가있는 경우). 동일한 저장된 절차 또는 기능을 만듭니다 (원래 테이블이 사용되는 경우).

다음 명령으로 MySQL 데이터베이스를보십시오. 서버에 연결하십시오. mysql -u username -p password run show database; 기존의 모든 데이터베이스를 가져 오려는 명령 데이터베이스 선택 : 데이터베이스 이름 사용; 보기 테이블 : 테이블 표시; 테이블 구조보기 : 테이블 이름을 설명합니다. 데이터보기 : 테이블 이름에서 *를 선택하십시오.

MariaDB 용 Navicat은 암호가 암호화 된 양식으로 저장되므로 데이터베이스 비밀번호를 직접 볼 수 없습니다. 데이터베이스 보안을 보장하려면 비밀번호를 재설정하는 세 가지 방법이 있습니다. Navicat을 통해 비밀번호를 재설정하고 복잡한 비밀번호를 설정하십시오. 구성 파일을 봅니다 (권장되지 않음, 위험이 높음). 시스템 명령 줄 도구를 사용하십시오 (권장되지 않으면 명령 줄 도구에 능숙해야 함).

MySQL에서 복사 및 붙여 넣기 단계는 다음 단계가 포함됩니다. 데이터를 선택하고 CTRL C (Windows) 또는 CMD C (MAC)로 복사; 대상 위치를 마우스 오른쪽 버튼으로 클릭하고 페이스트를 선택하거나 Ctrl V (Windows) 또는 CMD V (Mac)를 사용하십시오. 복사 된 데이터는 대상 위치에 삽입되거나 기존 데이터를 교체합니다 (데이터가 이미 대상 위치에 존재하는지 여부에 따라).

Navicat에서 SQL을 수행하는 단계 : 데이터베이스에 연결하십시오. SQL 편집기 창을 만듭니다. SQL 쿼리 또는 스크립트를 작성하십시오. 실행 버튼을 클릭하여 쿼리 또는 스크립트를 실행하십시오. 결과를 봅니다 (쿼리가 실행 된 경우).
